STM32F429时钟不正确导致串口无法正确收发

Posted dpshadow

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了STM32F429时钟不正确导致串口无法正确收发相关的知识,希望对你有一定的参考价值。

老早之前自己做了块F4的板子,设计原理图时没有去找官方参考,看了手册后就开工了,做完板子回来测试串口发现PC端接收到的都是乱码,尝试了几种波特率也没能正确接收,串口的代码是官方参考例程的,不应该有问题。所以定位到时钟上,下载了官方的参考设计,发现使用的时钟是25M的外部参考时钟,而我的是8M的,打开头文件stm32f4xx.h,找到宏定义如下所示,我的芯片是F429的,按照官方定义外部时钟源是25M

 技术图片

修改为实际的时钟源8M如下:

技术图片

按照以上修改后编译后,PC还是不能正确接收数据,查看system_stm32f4xx.c文件,找到分频因子宏如下,分频因子还是25,

技术图片

这样不能正确分频得到1M,所以修改为8如下,使能正确分频得到1M时钟,编译测试通过。另外需要注意的是以上提到的两个文件默认情况下是无法修改的,需要到文件目录里的对应文件的属性里,把只读属性去除即可修改。

技术图片

 

------------恢复内容结束------------

以上是关于STM32F429时钟不正确导致串口无法正确收发的主要内容,如果未能解决你的问题,请参考以下文章

如何在 STM32F429 中找到 APB1 时钟的值

STM32F429开发板用户手册第23章 STM32F429的USART串口基础知识和HAL库API

基于STM32的串口收发讲解(标准库)

基于STM32的串口收发讲解(标准库)

基于STM32的串口收发讲解(标准库)

STM32F429基于CUBEMX的串口中断接收