STM32F1 串口输出乱码问题

问题分析

发送使用HAL库函数:

HAL_UART_Transmit(&huart1,test,strlen(test),100);

    已经核对过波特率 数据长度等通讯格式,最后发现使用HAL库的初始化后,自己又另外使用了开发板的SYS时钟配置,HAL和自己配置的系统时钟不一致导致串口不能正常工作发出乱码。解决方案:修改时钟配置

先看外部使用8Mhz的STMcubeMX配置图:

STM32CubeMX对应生成的代码:

 程序使用开发板时需注意不要二次初始化时钟。

SystemClock_Config();                      //CubeMX配置的
//Stm32_Clock_Init(RCC_PLL_MUL9);         //自定义设置时钟,并指定主频因子。【使用CubeMX所以这里不用】
/* USER CODE BEGIN SysInit */
delay_init(72);                            //初始化延时函数 参数72M

SysTick定时器,来源如下图:

 

posted @ 2021-01-27 13:38  河岸瓶风  阅读(991)  评论(0编辑  收藏  举报