21ic问答首页 - 485通讯偶尔出现第一个字节或者前两个字节丢失
485通讯偶尔出现第一个字节或者前两个字节丢失
影烛光2020-12-24
本帖最后由 影烛光 于 2020-12-25 10:29 编辑
485通讯, 波特率是115200 思路是中断收发数据,主程序中检测到总线大于2ms空闲后,进行接收数据处理,再重新发送。
错误的概率不高,但是偶尔会出现。
目前最严重的情况是直接导致单片机和屏幕无法进行通讯(无法自己调节,重启后仍可能无法通讯)
补充一下,这个是原理图
485通讯, 波特率是115200 思路是中断收发数据,主程序中检测到总线大于2ms空闲后,进行接收数据处理,再重新发送。
错误的概率不高,但是偶尔会出现。
目前最严重的情况是直接导致单片机和屏幕无法进行通讯(无法自己调节,重启后仍可能无法通讯)
赞0
评论
2021-01-12
赞0
评论
2021-01-10
赞0
评论
2020-12-27
赞0
没有特别要求的。现在已经解决了,是收发程序 中断没协调好
评论
2020-12-27
赞0
原来如此,那你的屏幕在数据接收处理这个过程有特殊说明和要求没?
评论
2020-12-26
赞0
我觉得问题可能出在通讯双方波特率误差太大。
评论
2020-12-26
赞0
在屏幕上加个控件,触摸屏刷新数据需要一直从MCU获取数据。逻辑就是 MCU一直处于接收状态,获取触摸屏发送过来的数据,MCU接收数据响应,将485方向线切换到发送,数据返还给触摸屏。MCU发送结束后将485方向线切换到接收,等待触摸屏下一次指令到来。
评论
2020-12-25
赞0
我的理解是这样的,你写屏幕和读屏幕是不是都要先发命令,屏幕接收到命令后,将485切换为发状态然后发送数据,如果这时候你MCU的485还处于发状态,那肯定就会出现数据丢帧或出错。不知道你的应用逻辑是否这样?
评论
2020-12-25
赞0
是的,485是MCU和屏幕之间的通讯
评论
2020-12-25
您需要登录后才可以回复 登录 | 注册