OpenEdv-开源电子网

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

关于I2C例程的delay延时对主程序造成的阻塞问题

[复制链接]

5

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
106
金钱
106
注册时间
2018-3-15
在线时间
54 小时
发表于 2020-7-16 09:32:01 | 显示全部楼层 |阅读模式
5金钱
问题描述:
一般在IIC或者其他模拟时序时,用delay延时函数,但是假如主程序中有5项需要高速执行的任务(这些任务不能被阻塞),当IIC也在主程序中被调用时,程序会在IIC读写这里阻塞较久,那5项任务就会因为IIC的读写而暂停较久。请问如何规避这种问题?

最佳答案

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

软件那点延时觉得久的话只能用硬件IIC了
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

808

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3888
金钱
3888
注册时间
2017-3-7
在线时间
1694 小时
发表于 2020-7-16 09:32:02 | 显示全部楼层
软件那点延时觉得久的话只能用硬件IIC了
回复

使用道具 举报

70

主题

6763

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13122
金钱
13122
注册时间
2012-11-26
在线时间
3813 小时
发表于 2020-7-16 09:34:01 | 显示全部楼层
那你的意思你不能用delay了?弄5个芯片单独执行任务吧
回复

使用道具 举报

5

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
106
金钱
106
注册时间
2018-3-15
在线时间
54 小时
 楼主| 发表于 2020-7-16 09:40:58 | 显示全部楼层
jermy_z 发表于 2020-7-16 09:34
那你的意思你不能用delay了?弄5个芯片单独执行任务吧

哈哈,五个芯片是个好方案呀。我在想有没有其他方法来完成IIC时序,可能不一定用delay。或者用RTOS,大佬指导下呀
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
2
金钱
2
注册时间
2021-11-4
在线时间
0 小时
发表于 2021-11-4 18:54:22 | 显示全部楼层
ucos吧应该能解决
回复

使用道具 举报

17

主题

167

帖子

0

精华

高级会员

Rank: 4

积分
726
金钱
726
注册时间
2018-11-2
在线时间
148 小时
发表于 2021-11-5 09:19:33 | 显示全部楼层
lztXX 发表于 2021-11-4 18:54
ucos吧应该能解决

IIC那点阻塞都能影响任务的实时性的话,上操作系统更白搭了。
回复

使用道具 举报

17

主题

167

帖子

0

精华

高级会员

Rank: 4

积分
726
金钱
726
注册时间
2018-11-2
在线时间
148 小时
发表于 2021-11-5 09:20:09 | 显示全部楼层
我很好奇你那5个任务都做了什么工作实时性要求那么高,还是说你的IIC驱动有问题。
回复

使用道具 举报

28

主题

113

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1501
金钱
1501
注册时间
2021-8-10
在线时间
273 小时
发表于 2021-11-5 09:28:48 | 显示全部楼层
什么任务,对实时性要求这么高
回复

使用道具 举报

17

主题

167

帖子

0

精华

高级会员

Rank: 4

积分
726
金钱
726
注册时间
2018-11-2
在线时间
148 小时
发表于 2021-11-5 09:29:45 | 显示全部楼层
我做IIC的时候也出现过IIC影响其他任务的情况,比如IIC写OLED屏如果写屏太频繁会导致其他任务比如按键扫描出现问题,解决它的办法只能是把界面内容分成静态界面(只写一次)和动态界面(有变化时再写),尽可能减少IIC的通讯量。IIC的短延时虽然很短但是太多上操作系统也白搭,如果通讯量实在降不下来就把上拉电阻减小到1K或者2K然后尽可能减少延时让速度达到极限的400K,如果还不行只能换别的通讯方式了比如SPI。
回复

使用道具 举报

17

主题

167

帖子

0

精华

高级会员

Rank: 4

积分
726
金钱
726
注册时间
2018-11-2
在线时间
148 小时
发表于 2021-11-5 09:34:33 | 显示全部楼层
a5820736 发表于 2020-7-16 09:32
软件那点延时觉得久的话只能用硬件IIC了

硬件IIC也是阻塞的没啥用
回复

使用道具 举报

3

主题

808

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3888
金钱
3888
注册时间
2017-3-7
在线时间
1694 小时
发表于 2021-11-7 13:32:01 | 显示全部楼层
qinlu123 发表于 2021-11-5 09:34
硬件IIC也是阻塞的没啥用

硬件可以dma,不用阻塞
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-11 08:42

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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