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定时器,来源如下图:

原文地址:https://www.cnblogs.com/siyun/p/14334131.html