复位430单片机就能正常通信了

[复制链接]
2566|52
 楼主| zhanghqi 发表于 2017-6-17 23:58 | 显示全部楼层 |阅读模式
iic通信前几次都行,数据正确,但由于另一端的通信指令发送不完全或者通信时中断,(整个通信包含发送和读取)下次通信就不能连接上了,然后复位430单片机就能正常通信了,求高手解答一下是怎么回事吧。。。
airwill 发表于 2017-6-18 05:43 | 显示全部楼层
嗯, 你的软件应该加个通信超时处理来解决这个问题
dirtwillfly 发表于 2017-6-18 08:09 | 显示全部楼层
楼上正解。估计是程序卡在那个地方成死循环了,跳不出来
zhenykun 发表于 2017-6-18 18:25 | 显示全部楼层

不知道你的另一端通信和IIC通信的关系是怎样的
zhaoxqi 发表于 2017-6-18 18:26 | 显示全部楼层
你的通信没有做协议,导致乱了吧。
liliang9554 发表于 2017-6-18 18:28 | 显示全部楼层
如果一次数据传输不能够全部完成,包括stop位的发送,那么对另一端就会造成影响。建议你**另一端为什么会发送不完全。
jlyuan 发表于 2017-6-18 18:30 | 显示全部楼层
应该是出错后你的数据线和时钟线未被释放。要恢复通信,必须保证I2C DATA和CLK为高电平,即释放状态。
 楼主| zhanghqi 发表于 2017-6-18 18:32 | 显示全部楼层
通信是有协议的,两边都是硬件iic,我猜想是主发送读命令时,从机装载数据,但是主没有发送scl就从新开始发送写的命令,这样会不会出错啊?
yszong 发表于 2017-6-18 18:35 | 显示全部楼层
加入容错机制
jiajs 发表于 2017-6-18 18:38 | 显示全部楼层
难道用的IIC中断,没有清楚标志?
dengdc 发表于 2017-6-18 18:40 | 显示全部楼层

这个需要看下代码和协议,这样猜测的可能很多了
huangchui 发表于 2017-6-18 18:42 | 显示全部楼层
有可能是处于死机状态。
heweibig 发表于 2017-6-18 18:44 | 显示全部楼层

建议楼主加入容错机制    当通信时  定时器开始计时   传送一段字节,即让定时器清零   当因为通信错误使从机未发出定时器清零  定时器计时完成即I2C DATA和CLK为高电平,恢复初始状态  重新通信  但要设置一个断点通信功能   即从哪里断开  从哪里续传    说了这么多   其实就是要加一个合理的通信协议      希望能帮到你
lizye 发表于 2017-6-18 18:46 | 显示全部楼层

发现通讯错误后就应该STOP ,然后重新发送
 楼主| zhanghqi 发表于 2017-6-18 18:51 | 显示全部楼层
哦, 多谢大家啊,那就先结贴了
10299823 发表于 2017-6-24 16:16 | 显示全部楼层
初始化后完成有问题吗?
jimmhu 发表于 2017-6-24 16:17 | 显示全部楼层
驱动能力不足。
jimmhu 发表于 2017-6-24 16:17 | 显示全部楼层
建议使用上拉电阻。
lihuami 发表于 2017-6-24 16:18 | 显示全部楼层
复位正常能工作就是程序没有问题。
xiaoyaozt 发表于 2017-6-24 16:19 | 显示全部楼层
跟什么通信的?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

852

主题

11757

帖子

5

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