你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

关于STM32的I2C(IIC)问题的讨论  

[复制链接]
moyanming2013 提问时间:2016-11-22 16:35 /
阅读主题, 点击返回1楼
收藏 22 评论34 发布时间:2016-11-22 16:35
34个回答
moyanming2013 回答时间:2016-11-24 11:19:17
农夫水0533 发表于 2016-11-23 16:25
从我接触的几个ST的支持来看水平真的不咋地

其实这正是大家存在的价值,即使官方也可能有错误的时候啊
zbber 回答时间:2016-11-24 14:31:16
好帖,必须支持一下!
原田夜舞love 回答时间:2016-11-25 09:41:27
学习了,有空好好研究一下I2C
STM32F051 回答时间:2016-12-14 00:05:05
几年前的事了,楼主认为ST的IIC没有问题,还举例说明;片面
IIC的协议不复杂,用过NXP的人,尤其对IIC印象深刻,没问题;


ST的IIC是什么时候出的问题?是早期的版本,问题主要是STM8系列,STM32F1XX系列,STM32F2XX系列;
我遇到的问题,一旦出错,有可能对应的端口一直保持低电平状态,重新上电后,直接挂掉;只有把芯片擦除才可以恢复过来;
出现上述问题的时候,如果只是操作24CXX这类器件,问题要少很多;如果是双机IIC通讯,基本是没听说谁成功了。都是被迫改用模拟IIC来操作IO端口;耗时,费劲。


如果说ST的IIC很成功,为何后续新的器件,如STM32F0系列,把IIC部分的硬件重新设计?同期的STM32F4XX也跟着一同改用新核了;


问题出在哪?印象中有人分析过,是应答检测环节;处理的很草率,容错性差,如果应答信号没有及时检测到,就直接挂掉了;严重到不可恢复,重新上电都不行。
如果是短距离的硬件,如24CXX,能及时给出应答,没事,否则,发生什么都有可能。所以用24CXX的人有,但双机通讯的人,没听说谁成功了。


事后,ST公司并没有解释为什么IIC难弄,只是对IIC核重新设计了。


你自己可以搭个电路测试,二片STM8,用IIC通讯,通讯距离1米;
moyanming2013 回答时间:2016-12-30 11:55:14
STM32F051 发表于 2016-12-14 00:05
几年前的事了,楼主认为ST的IIC没有问题,还举例说明;片面
IIC的协议不复杂,用过NXP的人,尤其对IIC印象 ...

8位下你可以用模拟的没人质疑什么。
但不要把这种“认识”带入到32位的MCU中。
至于所谓的“新核”,Cortex-M3也会从r1p1升级到r2p0,都是正常的更新。
还是建议好好搞清楚I2C本身,然后再找找原因。
如果是应答环节无反馈,建议添加超时退出。
你的“把芯片擦除才可以恢复过来”太生猛了。
5265325 回答时间:2016-12-30 16:08:18
fengurl 回答时间:2017-6-6 18:06:44
正在学习IIC,楼主好榜样!
epochal 回答时间:2017-6-6 20:44:22
分析得很客观!
rex2233 回答时间:2018-4-20 17:41:35
马克
wyyu 回答时间:2018-5-6 14:54:09
近日在用STM32F1 调试 I2C 带 HTU21D,试用 while(); 方式判断进程,结果:不一定什么时候死在哪个 while() 上了。 准备偿试 中断方式~
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版