×
嵌入式 > 技术百科 > 详情

STM8L USART串口调试

发布时间:2020-12-15 发布时间:
|

最近学习开发STM8 MCU,,刚入手这颗MCU,对很多功能不太了解,只能一边开发一边学习,记录一下学习过程,如有错误的地方,敬请指正。


MCU:STM8L151K4 

环境:IAR FOR STM8


因项目需求,需要调试USART功能,刚开始时候手里没有原理图,只有板子和datasheet,从datesheet上看到USART RX TX管脚为PC2 PC3. 

 

于是便直接配置PC2 PC3,然后进行初始化,但是代码跑起来一直没有接收到MCU发送出去的数据,查看代码和datasheet,然后网上查找资料,发现USART有remappin功能,将PC3 PC2 映射到PA2 PA3上, 

 

于是便询问硬件,确定板子上的USART硬件管脚为PA2 PA3,于是重新配置相关代码,重映射管脚,测试ok.


虽然浪费了点时间,但是还是有些收获的。


部分代码如下:


#define USART_TX_PORT  GPIOA

#define USART_RX_PORT  GPIOA


#define USART_TX_PINS  GPIO_Pin_2

#define USART_RX_PINS  GPIO_Pin_3



void uart_gpio_init()

{

    GPIO_Init(USART_TX_PORT,USART_TX_PINS, GPIO_Mode_Out_PP_Low_Fast);


    GPIO_Init(USART_RX_PORT,USART_RX_PINS, GPIO_Mode_In_PU_No_IT);

}


void uart_init(void)

{

    uart_gpio_init();   


    CLK_PeripheralClockConfig(CLK_Peripheral_USART1, ENABLE);


    //remapping

    SYSCFG_REMAPPinConfig(REMAP_Pin_USART1TxRxPortA,ENABLE);


    USART_DeInit(USART1);


    /* UART1 configuration ------------------------------------------------------*/

    /* UART1 configured as follow:

        - USARTx = 1

        - BaudRate = 9600baud  

        - USART_WordLength = 8 Bits

        - One Stop Bit

        - No parity

        - Receive and transmit enabled

    */

    USART_Init(USART1, (uint32_t)9600, USART_WordLength_8b, USART_StopBits_1, USART_Parity_No,  (USART_Mode_TypeDef)(USART_Mode_Tx | USART_Mode_Rx));


    USART_Cmd(USART1, ENABLE);

}


如果USART硬件直接接到PC2 PC3上,就不需要SYSCFG_REMAPPinConfig进行重映射。




『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
物联传感与Atmel强强联手 达成智能家居战略合作协议