[STM32F1] STM32有硬件IIC,为什么很多应用,还要模拟IIC?

[复制链接]
26741|47
 楼主| turboc 发表于 2015-2-12 18:04 | 显示全部楼层 |阅读模式
看到很多STM32应用,使用I2C接口,明明STM32有硬件I2C,但不知为什么这些应用还要用GPIO来模拟I2C。这是为什么呢?

评论

好像使用模拟IIC的是要多一些啊!  发表于 2020-11-1 20:53
luobiyige 发表于 2015-2-12 20:52 | 显示全部楼层
那个硬件IIC是有BUG的 所以大家都虚拟IIC
jxlgxtutianya 发表于 2015-5-14 15:24 | 显示全部楼层
luobiyige 发表于 2015-2-12 20:52
那个硬件IIC是有BUG的 所以大家都虚拟IIC

楼上能分享下他的BUG在哪里不?  我现在就准备用硬件IIC,但是一直调试不通
lanjackg2003 发表于 2015-5-14 15:40 | 显示全部楼层
虚拟I2C更好移植性,不同的芯片未必 有 或者 有那么多I2C 可以供开发者使用


一般情况,如果一直用着一块芯片,建议就用寄存器的I2C.
神的兄弟 发表于 2015-5-14 15:43 | 显示全部楼层
本帖最后由 神的兄弟 于 2015-5-14 15:45 编辑

并不是IIC硬件有问题,是ST提供的库函数在设置IIC的API函数中出现了错误而且模拟的IIC同样很好用也有很多源代码,就不用再去改库函数里的BUG了
所以用模拟IIC的多
ZDR_OK 发表于 2015-5-14 15:45 | 显示全部楼层
我也想知道BUG在哪里?这么多人都说BUG,难道ST不会知道么?到底有没有改呢?如果没有改肯定有他的道理呀。我HW,没配过IIC的程序。
zhyue12 发表于 2015-5-14 15:48 | 显示全部楼层
ST为了防止侵权,把硬件IIC整得有点复杂,还有BUG
casn 发表于 2016-2-15 18:39 | 显示全部楼层
我的系统里有几个芯片是IIC接口,刚开始用官方的库函数也花了挺长时间调试,好不容易调通了,可是待正式小批量使用时,出现了偶尔死机的情况,后来断点查看,是卡在了IIC处理上,具体在哪里也说不清楚。于是花了段时间,用模拟IIC接口方式,程序基本就稳定了。我的理解是这样的:1.硬件IIC的时序不能出差错,如果你在读写IIC时,此时若正好碰上两根线上有了干扰,时序就不对了,它等不到回信也就卡在了哪里;2.模拟IIC即使出了干扰,也只是此时读写出错,数据都不出来或写不进去,但程序还会继续运行,待下次轮到时再读写,最大的好处是不影响整个程序运行。3.至于运行时间,应该比硬件IIC要慢(慢多少我也没测过),但是慢这点时间,基本对程序没什么影响。
JY-DX-JY 发表于 2016-2-15 19:33 | 显示全部楼层
exson_2006 发表于 2016-2-15 19:37 | 显示全部楼层
casn 发表于 2016-2-15 18:39
我的系统里有几个芯片是IIC接口,刚开始用官方的库函数也花了挺长时间调试,好不容易调通了,可是待正式小 ...

受教了 谢谢 大神
casn 发表于 2016-2-15 20:14 | 显示全部楼层
本帖最后由 casn 于 2016-2-15 21:15 编辑

再补充一下,为什么会卡死,硬件IIC中程序要等接口芯片的应答电平,等不到就死等,所以会卡死(估计未加超时处理所致),模拟IIC中的等待电平是cpu自己产生的,错过了就错过了,下次再来。如果说移植性,那完全在你的程序是否写得好了,和接口形式没关系。

ghost2 发表于 2016-2-15 23:38 来自手机 | 显示全部楼层
主端加超时处理就可以了
ghost2 发表于 2016-2-15 23:39 来自手机 | 显示全部楼层
https://bbs.21ic.com/forum.php?mod=viewthread&tid=1218016&mobile=2
crystal1987 发表于 2016-2-16 10:15 | 显示全部楼层
IIC的硬件没有问题,而是IIC的库函数存在BUG,建议你用模拟的IIC;需要的话,我有IIC的例程发你看看。
lh2008xp 发表于 2016-2-26 14:24 | 显示全部楼层
crystal1987 发表于 2016-2-16 10:15
IIC的硬件没有问题,而是IIC的库函数存在BUG,建议你用模拟的IIC;需要的话,我有IIC的例程发你看看。 ...

你是STM32硬件IIC的例程?
crystal1987 发表于 2016-2-29 08:43 | 显示全部楼层
lh2008xp 发表于 2016-2-26 14:24
你是STM32硬件IIC的例程?

没太明白“你是STM32硬件IIC的例程?”什么意思?
qq363099233 发表于 2016-4-22 14:04 | 显示全部楼层
crystal1987 发表于 2016-2-16 10:15
IIC的硬件没有问题,而是IIC的库函数存在BUG,建议你用模拟的IIC;需要的话,我有IIC的例程发你看看。 ...

能发个例程给我吗?
crystal1987 发表于 2016-4-22 14:30 | 显示全部楼层
qq363099233 发表于 2016-4-22 14:04
能发个例程给我吗?

可以,你把邮箱给我。
crystal1987 发表于 2016-4-22 14:31 | 显示全部楼层
qq363099233 发表于 2016-4-22 14:04
能发个例程给我吗?

可以,你把邮箱给我。
杨爱林林 发表于 2016-4-22 15:48 | 显示全部楼层
模拟的时序更好控制 也更方便移植  
不同单片机  也就改改io配置  还有那个delay
您需要登录后才可以回帖 登录 | 注册

本版积分规则

41

主题

54

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部