OpenEdv-开源电子网

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

ucosii + iic 读取数据

[复制链接]

35

主题

309

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2641
金钱
2641
注册时间
2016-8-10
在线时间
470 小时
发表于 2017-2-27 21:14:38 | 显示全部楼层 |阅读模式
20金钱
  看了坛友的帖子,在读之前禁用任务调度,读完了再打开任务调度,我也是这样弄得,但是还是读取不到值,裸跑的时候是可以正常读取到数据的   。  用的这个来打开和关闭OSIntEnter();  OSSchedLock(); OSSchedUnlock(); OSIntExit();  都试了不得行   ,在每个任务后面我给的是5ms的延时,我的时钟片是5ms的,我把这个延时改大也不得行

最佳答案

查看完整内容[请看2#楼]

.。。。。。。。。。。。。。。。。。。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

35

主题

309

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2641
金钱
2641
注册时间
2016-8-10
在线时间
470 小时
 楼主| 发表于 2017-2-27 21:14:39 | 显示全部楼层
.。。。。。。。。。。。。。。。。。。
回复

使用道具 举报

18

主题

47

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
232
金钱
232
注册时间
2017-3-19
在线时间
39 小时
发表于 2020-3-23 22:56:45 | 显示全部楼层
分享一下我个人遇到的情况,希望可以帮助到你。

我也是在使用 ucos 系统前,IIC 是能够跑的;但是使用了 ucos 之后系统就不能跑了。

我的情况比较特殊,我使用 ucos 前的 IIC 是使用寄存器来写的,但是 ucos 是使用 HAL 库。这里的问题是使用寄存器的时候 IO 口的复位置位寄存器是 BSRR ;而使用了 ucos 系统的时候 HAL 库的复位置位寄存器是 BSRRL 和 BSRRH 寄存器,当时粗心把这两个没写正确,所以导致 IIC 的时序模拟不出来,在后来 Debug 的时候才发现了这个问题,目前 ucos 下的 IIC 能够正常使用!

注:原子哥说的delay函数要检查一下,虽然我也是使用了比较新的版本,dalay.c中已经说明支持ucos系统,所以检查一下就好。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-23 08:08

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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