打印

FreeRTOS上用IO模拟IIC

[复制链接]
2421|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
1002689898|  楼主 | 2019-9-26 17:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如图,这次项目准备用STM32+FreeRTOS,USART和SPI都已经调通了,IIC还是想用IO口模拟,这样觉得心里踏实,目前RTOS切换任务的实际是1ms,会不会影响到IO模拟IIC通信呢,如果影响了,有什么好的办法解决这样的问题,各位好心的哥哥姐姐们,给小弟一点指导哦。

使用特权

评论回复

相关帖子

沙发
caoenq| | 2019-9-27 08:55 | 只看该作者
可以使用硬件IIC.

使用特权

评论回复
板凳
18990194628| | 2019-9-27 09:04 | 只看该作者
i2c如果在RTOS中使用软件模拟的方法,延时部分必定是us级,必然不能用RTOS的系统延时,必然会造成系统阻塞,不过只要i2c数据交互不太多,倒不影响什么,数据交互大的情况下会影响系统响应速度

使用特权

评论回复
地板
811909| | 2019-9-27 11:21 | 只看该作者
放心大胆的用吧,眉毛的影响,我试过FreeRTOS跑100us切一次任务,一样跑的很正常,没任何问题

使用特权

评论回复
5
lihui567| | 2019-9-27 12:50 | 只看该作者
这个iic通讯的延时可以把系统延时改小一点,对程序影响不大,可以的

使用特权

评论回复
6
bear1| | 2019-9-29 10:25 | 只看该作者
嗯,放心大胆的用,绝对没问题,选FreeRTOS就对了。

使用特权

评论回复
7
dld2| | 2019-9-29 15:11 | 只看该作者
方法估计是有的,但是用RTOS和IO模拟时序这两个事情本质上有矛盾,不提倡

使用特权

评论回复
8
R2D2| | 2019-9-29 19:53 | 只看该作者
几种方案吧,最老的STM32F1系列的iic问题是最严重的,有两种解决方案:
1)如果iic使用非常不频繁,比如上电读取上次数据,掉电前保存数据到24Cxx里面,可以用软件模拟,不要考虑影响RTOS问题。
2)如果iic是系统最关键的使用最频繁的peripheral,那么可以给最高优先级中断,或者给一条DMA通道,总之iic操作的时候,没有别的peripherals来打扰,那么stm32的硬件iic还是非常可靠的。

对于后来的stm32f4、f0系列,据说已经改进了iic,问题能少一些,你可以到st的官方网站找errata。

当年被stm32f103的硬件iic和rtc折磨坏了,以至于现在养成了先看errata再看datasheet,最后看reference manual的习惯。

使用特权

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

本版积分规则

18

主题

115

帖子

1

粉丝