OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3548|回复: 6

UCOSIII中使用IIC,出现偶数次的数据不正确的现象

[复制链接]

10

主题

36

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
301
金钱
301
注册时间
2016-1-6
在线时间
84 小时
发表于 2016-11-7 22:21:35 | 显示全部楼层 |阅读模式
1金钱
我用的是原子哥的mini板子,IIC的驱动代码就是例程的模拟IIC,不加入操作系统时读写正确。加入操作系统后,读、写(2个任务)前后分别对调度器采用上锁和解锁的操作,但是出现了偶数位的数据读出来不正确,奇数数位正确的奇怪现象,于是我把读写任务的时间片延长到50个(每个5ms)问题还是没有解决,读写任务的优先级相同并且是可用优先级中最高的。操作的数据并不多也就10个不到。为什么会出现这样,请大神们指点一下,谢谢。

QQ图片20161107222101.png
QQ图片20161107222110.jpg
QQ图片20161107222116.png
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

10

主题

36

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
301
金钱
301
注册时间
2016-1-6
在线时间
84 小时
 楼主| 发表于 2016-11-8 15:21:05 | 显示全部楼层
上午用示波器看了波形,写时序的波形和我要写的数据一致,读时序的波形和读出的数据一致,很奇怪。既然写时序的波形正确,那就说明应该写进去了,但是读出来的又不对,读写任务过程中并没有任务调度的产生。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165226
金钱
165226
注册时间
2010-12-1
在线时间
2107 小时
发表于 2016-11-9 23:32:53 | 显示全部楼层
帮顶
回复

使用道具 举报

42

主题

145

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
353
金钱
353
注册时间
2016-7-17
在线时间
59 小时
发表于 2016-11-15 23:10:10 | 显示全部楼层
叫我哥,就告诉你
哈哈哈哈哈
回复

使用道具 举报

10

主题

36

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
301
金钱
301
注册时间
2016-1-6
在线时间
84 小时
 楼主| 发表于 2016-11-16 22:05:24 | 显示全部楼层
一起走过的日子 发表于 2016-11-15 23:10
叫我哥,就告诉你
哈哈哈哈哈

大哥你真会?
回复

使用道具 举报

2

主题

391

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1957
金钱
1957
注册时间
2014-8-8
在线时间
307 小时
发表于 2016-11-22 14:22:20 | 显示全部楼层
AT24CXX_WriteOneByte()函数最后的延时参数你调整一下就可以了,增大一倍试试。
按你现象描述的话应该是写入的时候等待时间少了。
回复

使用道具 举报

3

主题

400

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1745
金钱
1745
注册时间
2015-6-11
在线时间
307 小时
发表于 2016-11-24 15:56:37 | 显示全部楼层
OSSchedLock只是关闭了任务调用,没有关闭中断,iic的读取出错大多是中断原因,你改成OSIntEnter()和OSIntExit()再试试
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-1 22:29

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表