再问STM32的硬件I2C与软件模拟

2019-12-12 18:09发布

坛里的帖子看了很多,大致了解了STM32的硬件I2C的确有一些BUG,或者说使用时有很多不方便满足的要求,比如DMA加最高中断。所以思考是否使用模拟方式替代。但有种观点是模拟I2C太耗资源。我认真分析了下,其实大部分I2C读写操作在程序中都是顺序类型的,及当读、写I2C从机时,必须读、写到想要的数据才能继续往下执行,如果其中出错,还必须重新来过。所以不管是用硬件查询,中断,DMA等方式还是模拟方式,都必须等待从机完成,所花时间决定与I2C速度和从机响应速度。如果可以这么理解,是否可以说其实模拟方式没有任何风险,速度差不多,故而是最好的选择?

望对这个问题有经验的朋友们不吝赐教!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
93条回答
szszjdb
2019-12-13 10:33
s1j2h3 发表于 2017-3-3 09:30
其硬件应该是没问题的,网上很多人说有问题只不过是使用不当或对其理解不够 ...

多谢回复!STM32的I2C严格讲是兼容性不好,在很多特殊状态下的确出现死锁现象,官方一些辅助文档明确承认并给出了软件解决方案。 F1/F4/F7都存在。我也遇到了。如此多的工程师发现的问题,也不是空穴来风吧。最不解的是官方并没有以标准文档形式提供一个全面指导文件,所以靠工程师自己摸索,往往不能药到病除。这里探讨的也是其中一个解决方案而已。希望朋友们多给意见,谢谢!

一周热门 更多>