[STM32F4] 波特率检测

[复制链接]
1674|27
 楼主| heweibig 发表于 2021-11-13 23:41 | 显示全部楼层 |阅读模式
用UATR通信,主机发送0000 1101,一位起始位,8位数据位,一位停止位,如果主机的波特率设为9600,从机的波特率设为4800,那么从机收到的是什么呢?
huangchui 发表于 2021-11-13 23:43 | 显示全部楼层
这是我发送100个0x0D得到的C8 86 86 C8 A4 86 C8 A4 86 C8 A4 86 86 E4 86 86 C8 A4 86 86 A4 86 C8 A4 86 C8 A4 86 86 A4 86 86 A4 FE,楼主可参考下的,发送2个0x0D为C8,发送3个0x0D为A4,发送1个0x0D为FE
 楼主| heweibig 发表于 2021-11-13 23:45 | 显示全部楼层
一般的希望两边的波特率一定要一致,不然肯定会造成数据的误码的
zwll 发表于 2021-11-13 23:47 | 显示全部楼层
你要是做过模拟UART口的,就会更能进一步的了解更深层的东西的,这数据传输最基本的就是高低电平的变化的,中间的一个电平出现读取错误,就会影响你后边的数据的读取的正确性的
dingy 发表于 2021-11-13 23:49 | 显示全部楼层
一般情况下,UART是双方的BAUD须一致的,否则会造成通信出现误码
 楼主| heweibig 发表于 2021-11-13 23:50 | 显示全部楼层
波特率不一致,收到的是乱码!!
jiaxw 发表于 2021-11-13 23:53 | 显示全部楼层
两边的波特率设置不一致的,就根本得不到正确的数据的
huangchui 发表于 2021-11-13 23:55 | 显示全部楼层
自动波特率,是指某一方可以检测对方传输数据时的波特率,从而采用与对方相同的波特率进行数据传输,而不需要人工设置。
renyaq 发表于 2021-11-13 23:57 | 显示全部楼层
这个要看是什么样的串口协议了吧。
xxmmi 发表于 2021-11-13 23:58 | 显示全部楼层
以某个波特率发送固定已知数据的,用单片机串口接收数据,先用1200的波特率接收  。。
zwll 发表于 2021-11-14 21:12 | 显示全部楼层
其实就是将对方的TXD接到计数器管脚,在一定时间内抓取最窄脉宽就行了。。
pengf 发表于 2021-11-14 21:16 | 显示全部楼层
自动波特率检测可以通过软件实现
xxrs 发表于 2021-11-14 21:18 | 显示全部楼层
通信过程中必然需要一段同步过程  。
shimx 发表于 2021-11-14 21:20 | 显示全部楼层
串口波特率是自动识别的吗?
zhaoxqi 发表于 2021-11-14 21:22 | 显示全部楼层
通信波特率一般选择1800、4800、9600和 19200等 。。。
wyjie 发表于 2021-11-14 21:24 | 显示全部楼层
单片机加电时用加一段检测串口的初始化程序  。。。
chuxh 发表于 2021-11-14 21:26 | 显示全部楼层
自动波特率检测就是检测对方传输数据 。。。
dingy 发表于 2021-11-14 21:28 | 显示全部楼层
有些子协议本身就带有位同步字段,用于波特率自动检测及位同步  。。
dingy 发表于 2021-11-14 21:31 | 显示全部楼层
任何一款带有UART的单片机都可以实现。
zhenykun 发表于 2021-11-14 21:33 | 显示全部楼层
一般情况下是乱码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

869

主题

13089

帖子

7

粉丝
快速回复 在线客服 返回列表 返回顶部