STM8L USART串口调试

来源:互联网 发布:数据库安全性设计 编辑:程序博客网 时间:2024/05/22 05:17

最近学习开发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_3void 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进行重映射。

原创粉丝点击