D5Power 发表于 2017-11-10 10:01:54

时钟设置和波特率的关系

最近在学习串口的数据接收,发现收到的数据和发送的数据完全不符,哪怕是1个字节(发0x51回0xE0,还有的数据完全无法进中断)
因此怀疑是波特率的问题。从设置上看是一样的,我使用的是STM32L4芯片。

后来降低波特率,从115200降低到4800,两边终于调通,数据一致了。
网上查了下,都说波特率和时钟设置是有关系的,求教:这个一般怎么计算或设置呢?

Inc_brza 发表于 2017-11-10 10:38:51

楼主,反问一句,在你发这个贴之前,有没有看过参考手册的usart章节部分!

发表于 2017-11-10 11:14:35

楼主用的是外部晶振吗?晶振是多大,正常的不用配置,只需要设置波特率就行了。如果是32.768这种晶振,就需要注意了。

D5Power 发表于 2017-11-10 15:01:15

安 发表于 2017-11-10 11:14
楼主用的是外部晶振吗?晶振是多大,正常的不用配置,只需要设置波特率就行了。如果是32.768这种晶振,就需 ...

应该没有吧,就是单纯的开发板。最开始的时候没有设置clock,好像是默认的4MHz,后来改成了80。不过好像没啥影响。不知道哪里设置错了

发表于 2017-11-11 08:35:52

system.c这个文件默认配置的外部晶振、时钟的配置选择开发板对应的,比如默认是外部8Mhz的晶振,主频一般是最高。如果是用4Mhz就需要修改一下配置文件。

D5Power 发表于 2017-11-11 22:58:28

安 发表于 2017-11-11 08:35
system.c这个文件默认配置的外部晶振、时钟的配置选择开发板对应的,比如默认是外部8Mhz的晶振,主频一般是 ...

非常感谢!!
页: [1]
查看完整版本: 时钟设置和波特率的关系