打印
[STM32F1]

stm32串口通讯线拔下再接上后通讯出错

[复制链接]
2056|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yyh1910|  楼主 | 2014-3-12 08:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
stm32与上位机串口通讯。串口线接收在开机通讯正常,在串口线断开,在接上后通讯就出错。如程序收到上位机 0x20 0x01 0x55 0x00后,将返回这4字节及CRC+00(MCU自动返回的00?),并执行相应硬件操作;当232线拔掉在接上后,上位机发送4字节指令后,MCU一直返回00,也不执行相应操作。不知是什么原因,请教有效解决方法。
沙发
rtgchym| | 2014-3-12 09:18 | 只看该作者
串口不是即插即用设备,按理说,串口线是不允许热插拔的,即使是U转串,也必须是拔掉U口端才能用系统消息来感知(USB是即插即用)。开机可正常通讯,所以,你的底层驱动应该没什么问题,你这样可能要在上位机机和设备端建立应答机制。上位机向设备发送查询命令,设备返回一个状态,上位机机端加入超时处理。

使用特权

评论回复
板凳
rtgchym| | 2014-3-12 09:22 | 只看该作者
你还可以在MCU接收中断里先逐个判断接收到的字符是不是上位机发送的正确指令,如果是,这从缓冲区提取出来分析指令并执行相应操作,如果不是,则直接舍弃,等下一批指令,你主从机都考虑一下

使用特权

评论回复
地板
yyh1910|  楼主 | 2014-3-12 09:32 | 只看该作者
刚刚试了试,发现一切正常,随便拔插都可再次通讯,可能昨天是在硬件仿真的情况下做的。另外硬件仿真时,程序进入断点后,在连续运行,Keil就死机了,这是什么原因呢?经常出现这现象

使用特权

评论回复
5
airwill| | 2014-3-13 07:30 | 只看该作者
Keil 死机的情况, 我也经常遇到, 曾经怀疑是干扰, 但是在家里很安静的晚上, 问题也照样会遇到(好象频次是少了). 一直没有确定最主要的原因是什么

使用特权

评论回复
6
jusun66| | 2014-3-13 11:52 | 只看该作者
串口本身不支持热插拔,不建议,搞不好啥时候还可能烧芯片

使用特权

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

本版积分规则

48

主题

96

帖子

1

粉丝