时钟设置和波特率的关系
最近在学习串口的数据接收,发现收到的数据和发送的数据完全不符,哪怕是1个字节(发0x51回0xE0,还有的数据完全无法进中断)因此怀疑是波特率的问题。从设置上看是一样的,我使用的是STM32L4芯片。
后来降低波特率,从115200降低到4800,两边终于调通,数据一致了。
网上查了下,都说波特率和时钟设置是有关系的,求教:这个一般怎么计算或设置呢?
楼主,反问一句,在你发这个贴之前,有没有看过参考手册的usart章节部分! 楼主用的是外部晶振吗?晶振是多大,正常的不用配置,只需要设置波特率就行了。如果是32.768这种晶振,就需要注意了。 安 发表于 2017-11-10 11:14
楼主用的是外部晶振吗?晶振是多大,正常的不用配置,只需要设置波特率就行了。如果是32.768这种晶振,就需 ...
应该没有吧,就是单纯的开发板。最开始的时候没有设置clock,好像是默认的4MHz,后来改成了80。不过好像没啥影响。不知道哪里设置错了 system.c这个文件默认配置的外部晶振、时钟的配置选择开发板对应的,比如默认是外部8Mhz的晶振,主频一般是最高。如果是用4Mhz就需要修改一下配置文件。 安 发表于 2017-11-11 08:35
system.c这个文件默认配置的外部晶振、时钟的配置选择开发板对应的,比如默认是外部8Mhz的晶振,主频一般是 ...
非常感谢!!
页:
[1]