单片机串口数据接收错误

单片机串口数据接收错误,第1张

你这说得有点糊涂,是用Proteus仿真呀,还是用实物电路板通信呀。如果是用Proteus仿真的话,电脑是没有RS485接口的,用串口调试助手发送数据,是电脑从RS232串口(COM口)发送的数据,在Proteus里是无法接收的。用电脑发送,用实物接收也不行,电脑要安一个RS232转RS485转换器,转成RS485才行。你这也不清楚什么是仿真,什么是RS485和RS232,搞得很混乱。你可在Proteus里画两个单片机,一个发送,一个接收,用485总线连接,然后给两个单片机分别写程序才能仿真的。如果有实物电路板,就实际做好了,没有必要再仿真哪,仿真是假的呀。

单片机串口通信数据丢失很大一部分原因是:mscomm的inputlen设置设置有问题;
解决方案:
mscomm的inputlen设置为0吧(读取整个缓冲区),读完一次,清空一次缓冲区试试;
参考如下:
窗体初始化事件中建议将mscomm的这几个属性做如下设置:
mscomminbuffersize=8 '接收缓冲区大小
mscommrthreshold=4 '促发oncomm事件的字符数
mscomminputlen=0 '默认读取整个缓冲区
mscomminputmode=cominputmodetext '以文本方式接收
mscomminbuffercount=0 '清空缓冲区
oncomm事件中,建议处理完接收数据后用mscomminbuffercount=0清空缓冲区


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/13191390.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-08-30
下一篇2025-08-30

发表评论

登录后才能评论

评论列表(0条)

    保存