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

关于STM32的硬件I2C

[复制链接]
fantasylankao 提问时间:2018-8-29 17:30 /
在百度里随手搜一下STM32的硬件I2C,就会出现一堆帖子,大多是说“STM32的硬件I2C是个坑”之类,并且大多建议使用软件模拟I2C。STM32的硬件I2C问题几乎成了开发人员的共识了。。。
挺纳闷的,这一论断到底是怎样产生的?真的就没人敢用硬件I2C吗?
收藏 评论8 发布时间:2018-8-29 17:30

举报

8个回答
freeelectron 回答时间:2018-8-29 17:36:25
说的是早期的F103系列
freeelectron 回答时间:2018-8-29 17:36:31
说的是早期的F103系列
jjbboox 回答时间:2018-8-29 18:29:32
本帖最后由 jjbboox 于 2018-8-29 18:31 编辑

这是误解!
用标准库的时候硬件I2C出问题的比较多。
但是你去用一下HAL的库就知道了,一点问题都没有。
说明本身硬件上是没有问题的。
国内论坛反映的问题大部分都是用标准库,那么问题就出在标准库上。要么就是库有问题,要么就是用法有问题。
我感觉第一种的可能性非常低,多半就是标准库驱动硬件I2C的用法上面存在一知半解和错误。而且随着一大堆教学视频,已经把这些问题固化到所有学习者的认识中了。
七哥 回答时间:2018-8-29 23:56:28
硬件I2C还可以,小心谨慎的用。我在产品中使用硬件I2C,一切正常,不过只挂了一个设备。
最初STM32F103的标准固件库时,I2C的操作,有好多一旦出错while死等的情况。如果感觉用着不爽,那么把while死等改造一下,做个变量递增或递减,超时退出,不要死等,并设置返回值或其它标志变量,通知主程序,此次I2C出错了,需要进一步清除错误标志或复位I2C总线。
feixiang20 回答时间:2018-8-30 01:05:08
如果你针对这个专心去学,是不会有什么大问题的,无非就是有些地方不方便而已,你如果是掌握了熟悉了就没事了。我觉得无论是不是因为标准库的原因,熟练程度决定了你的设计方法。
STM1024 回答时间:2018-8-30 10:45:41
我觉得问题出在标准库上面,那个例子看起来就很不爽哎
ppprrr 回答时间:2018-8-30 11:43:08
个人感觉很多人是copy 网上的code,然后改来改去发现有问题,就会说硬件i2c不好用。
其实我自己觉得官方给的HAL库,没有什么问题,无论是polling,DMA,中断模式,都可以的,但是用起来的前提是要知道stm i2c的用法,要读手册和寄存器的,尤其是stm32的i2c,东西还是相对比较多,得耐心的好好看。另外,i2c的标准也要知道的,因为标准里面涉及一些细节,可能是一个正常的sync行为,而用户不知道,就当作是bug.。。。我刚从i2c坑里爬出来的,一点感想,希望有点帮助。。

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版