发新帖我要提问
12
返回列表
打印
[51单片机]

大数据传输过程中波特率变化

[复制链接]
楼主: zmwss
手机看帖
扫描二维码
随时随地手机跟帖
21
zmwss|  楼主 | 2013-11-27 23:10 | 只看该作者 回帖奖励 |倒序浏览
本帖最后由 zmwss 于 2013-11-27 23:25 编辑

感谢各位的回复。

原因还没查明,今天用示波器抓了下波形,因数据量太大,不太好抓,但抓到一次,出错应答AAH的波特率确实变回57600,而回这个出错应答时135BYTE数据还没有接收完,那么就是在接收这135BYTE数据期间波特率由115200变到57600,导致我提前认为135个数据接收完,然后触发出错应答AAH。
没想明白为什么波特率发生改变。

使用特权

评论回复
22
zmwss|  楼主 | 2013-11-27 23:21 | 只看该作者
本帖最后由 zmwss 于 2013-11-27 23:23 编辑
kseeker 发表于 2013-11-27 01:04
八成是自适应程序在中间运行过,把波特率调了。如果你确定自适应的部分只运行过一次,最好检查一下下位机是 ...

谢谢 kseeker的回复,你说的只适应在中间运行过,但从软件设计上看自适应只是在上电后运行一次,后面没有再运行。当然如果发生不正当的情况,
如果是芯片复位了,那有可能,就重新执行自适应部分,波特率发生改变。那么芯片在接收数据的时候怎么会复位,应该有办法证明。

使用特权

评论回复
23
zmwss|  楼主 | 2013-11-27 23:33 | 只看该作者
戈卫东 发表于 2013-11-27 12:48
估计是软件动了那个波特加倍的寄存器了.......

谢谢卫东,波特率现在是减半了。

使用特权

评论回复
24
ayb_ice| | 2013-11-28 08:23 | 只看该作者
调试嘛,出错后,看看相关寄存器的值,反推一下即可

使用特权

评论回复
25
forrest11| | 2013-11-28 08:40 | 只看该作者
dictionary 发表于 2013-11-26 08:29
数据量太大也会出现波特率错误的现象的,PC的时钟和MCU的时钟不可能一样的,所以传输的位越多这种错误就积 ...

这个就胡说了,根本就没有搞明白串口通信原理。
误码不是时钟差累积,时钟频率差累积错就是错,这样的话通信全部都是错的。
误码一般是统计学概念,噪声干扰导致信号畸变,最终导致判断错误。

使用特权

评论回复
26
dqyubsh1| | 2013-11-28 10:36 | 只看该作者
加个大缓冲,再加上超时分帧的判断,否则通讯不可能可靠。

使用特权

评论回复
27
16777216| | 2013-11-28 21:24 | 只看该作者
估计程序问题

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则