易错点:
1、波特率,串口发送与串口助手对应,这个核对最简单!对数就行。
2、时钟频率:特别注意时钟频率问题,我在cubemx自己配置串口1+printf输出时,板子的外部时钟HSE频率为8MHz,结果在配置cubemx时,HSE时钟错误配置为25MHz,结果在引入stdio.h 并复用fputc之后仍然乱码,查找半天,大家都说是HSE时钟问题。
不同芯片外部时钟源频率不一样!!!!!一定要注意你的芯片的时钟。
HSE时钟默认值是:HSE_VALUE,在工程内部全局搜索:发现其实有两个地方定义了HSE_VALUE,其一是在system_stm32f4xx.c里面,这个我的理解是系统文件,这个里面关于HSE的定义是其他地方没有定义时才会起作用,这里的HSE数值默认是25MHz,但原子F407外部时钟源是8MHz!
在Cubemx生成的工程中,stm32f4xx_hal_conf_template.h中定义了HSE_VALUE,这里的定义才是影响系统的!!(前面我在网上搜到的好多资料都说要改HSE_VALUE),但都是在system_stm32f4xx.c里面改,但是用Cubemx生成的工程,stm32f4xx_hal_conf_template.h中定义了HSE_VALUE才是实际定义的!!!!!!