[STM8] STM8L051的硬件I2C问题求助

[复制链接]
1592|6
 楼主| zuiyunge 发表于 2015-9-22 15:33 | 显示全部楼层 |阅读模式
本帖最后由 zuiyunge 于 2015-9-23 09:27 编辑

@香水城
小弟最近在用STM8L051做一个数据采集设备,需要通过I2C把数据汇总到主控板,主控板是用的STM32F103,I2C的主机在主控板,软件I2C。
目前状况是:主控板依次从几个采集设备采集数据,但是有时候某个从机回复的信息中会有某个字节出错例如下图:
图中的数组元素0~11和12~23为同一个数据副本,11和23位前面11个数字的8位累加和,可以看到第一张图片中的5号位本应该为0x01的,可读到的结果为0x00,其他时候还有0xA5变成0xA3的  0xB7变成0x00的情况,不知道各位大神知道什么原因么?
1.jpg
2.jpg
豆腐块 发表于 2015-9-22 19:26 | 显示全部楼层
楼主图片没上来
布谷鸟2015 发表于 2015-9-22 20:25 来自手机 | 显示全部楼层
好奇怪啊,从来都没出现过这种情况,不知道真的是采集数据出错了吗?
会飞の鱼 发表于 2015-9-22 21:02 | 显示全部楼层
图片看不到。。。
 楼主| zuiyunge 发表于 2015-9-23 09:33 | 显示全部楼层
我也很奇怪,我的主控板挂载了8个采集设备,偶尔会有一台出现这种情况,我做了数据对比发现是这样的。图片中第一段数值和第二段数值在从机端是一样的,通过I2C读取到主机端却出错了。
我现在暂时的解决办法是主机读一次,从机自动连续上传2次,通过CRC做数据对比,但这样毕竟是特殊操作,不能根本上解决问题。
拉克丝 发表于 2015-9-23 20:11 | 显示全部楼层
从机自动连续上传2次,通过CRC做数据对比

感觉这样做比较科学
embed_chip 发表于 2015-11-2 11:02 | 显示全部楼层
同意楼上, 加校验是一种方法.
此外, 可以将问题简化一下,看看原始发出的数据是什么再比较结果. 如果不一致,可以用示波器或者逻辑分析仪看一下.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

6

帖子

0

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