[STC单片机] STC12C5A60s 485通讯问题

[复制链接]
2260|8
 楼主| zhihuo 发表于 2013-12-26 14:29 | 显示全部楼层 |阅读模式
现在我手头有2个产品 A产品只有通讯协议 B产品自己开发的。
2款产品用电脑的串口调试数据收发都是正常的。
将2个产品相连后B产品接收的数据不正常,A产品可以接收到正确的数据(指示灯闪烁确定接收正常才发送相关信息给B产品)
可以确定是软件问题,就是不知道该改查哪里,请知道的大虾指点。
ayb_ice 发表于 2013-12-26 14:39 | 显示全部楼层
这谁知道呢

检查呗
 楼主| zhihuo 发表于 2013-12-26 15:19 | 显示全部楼层
ayb_ice 发表于 2013-12-26 14:39
这谁知道呢

检查呗

查了 好久了。。。
不知道哪有问题纠结呢!
还有在发送那 清串口中断标志位ES 发送完了在置1 但是加了后单片机就死机,你知道什么原因吗?
ayb_ice 发表于 2013-12-26 15:44 | 显示全部楼层
ES不是串口中断标志,是中断控制
ningling_21 发表于 2013-12-26 18:49 | 显示全部楼层
本帖最后由 ningling_21 于 2013-12-26 18:51 编辑
zhihuo 发表于 2013-12-26 15:19
查了 好久了。。。
不知道哪有问题纠结呢!
还有在发送那 清串口中断标志位ES 发送完了在置1 但是加了后 ...

ES不能随便删减,必须要了解整个程序的逻辑,否则肯定死机.

一般就是B产品没有严格按照A产品的通信协议来进行收发...
黄小俊 发表于 2013-12-26 21:42 | 显示全部楼层
查查软件。。
 楼主| zhihuo 发表于 2013-12-27 11:00 | 显示全部楼层
问题找到了 ES死机是因为 按STC的例子里面自己弄了个忙碌标记。我没注意所以死机了。
东西接不到数据是因为485发送完数据后延迟了点时间拉低导致,囧! 拷贝来的代码,哎!
duhemayi 发表于 2013-12-27 11:08 | 显示全部楼层
查查软件。。
meng730507 发表于 2013-12-27 11:18 | 显示全部楼层
485通信要注意,不同的单片机,发送完成的产生机制不一样。可能会出现,中断标志出现了,数据还在发送的现象。要是这时改变485方向,后面的数据就发不出去了。严格来说,要等到最后数据的停止位发送完成,才可以改成接收状态。要是对面机子的反应太快,说不定这时都有返回数据发出来了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

3

帖子

1

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