打印
[STM8]

STM8L051的硬件I2C问题求助

[复制链接]
1328|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 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 (56.59 KB )

1.jpg

2.jpg (51.37 KB )

2.jpg
沙发
豆腐块| | 2015-9-22 19:26 | 只看该作者
楼主图片没上来

使用特权

评论回复
板凳
布谷鸟2015| | 2015-9-22 20:25 | 只看该作者
好奇怪啊,从来都没出现过这种情况,不知道真的是采集数据出错了吗?

使用特权

评论回复
地板
会飞の鱼| | 2015-9-22 21:02 | 只看该作者
图片看不到。。。

使用特权

评论回复
5
zuiyunge|  楼主 | 2015-9-23 09:33 | 只看该作者
我也很奇怪,我的主控板挂载了8个采集设备,偶尔会有一台出现这种情况,我做了数据对比发现是这样的。图片中第一段数值和第二段数值在从机端是一样的,通过I2C读取到主机端却出错了。
我现在暂时的解决办法是主机读一次,从机自动连续上传2次,通过CRC做数据对比,但这样毕竟是特殊操作,不能根本上解决问题。

使用特权

评论回复
6
拉克丝| | 2015-9-23 20:11 | 只看该作者
从机自动连续上传2次,通过CRC做数据对比

感觉这样做比较科学

使用特权

评论回复
7
embed_chip| | 2015-11-2 11:02 | 只看该作者
同意楼上, 加校验是一种方法.
此外, 可以将问题简化一下,看看原始发出的数据是什么再比较结果. 如果不一致,可以用示波器或者逻辑分析仪看一下.

使用特权

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

本版积分规则

2

主题

6

帖子

0

粉丝