• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

stm32的IIC问题

勇哥来巡山 2018-07-01 浏览量:986
为什么别人说STM32的硬件IIC有问题,都建议使用软件模拟IIC
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • stm32的IIC是库的问题,早期的库编写存在bug导致使用出现了很多问题,目前最新的库已经修复了该bug
    • 发布于 2018-07-11
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:15
  • 在早期stm32的i2c确实有问题,据听说是官方库有bug,后来修复了,这已经是好几年前的事情了,自我毕业用的库都是没问题的

    用模拟i2c有主要几个原因

    1.很多程序员都是51过来的,51没有i2c,再说协议很好写,资料满天飞,习惯难改,

    2.stm32的i2c有局限,传输的位数有限制,而像mpu6050之类的姿态等难以匹配,要想用,要修改stm32的i2c库,比较墨迹。模拟i2c比较灵活,传输位数随便改。好用

    3.当年stm32的i2c坑了很多人,工程中必须严谨,比较害怕,再加上i模拟i2c只是比stm32自带的慢一点而已,复制一个现成的写好的i2c.c文件,一调也很方便,所以产品用模拟的比较多

    • 发布于2018-07-01
    • 举报
    • 评论 0
    • 0
    • 0

  • stm32的硬件i2c流程比较固定由于i2c本身有一定的复杂度所以操作起来也比较麻烦.
    • 发布于2018-07-01
    • 举报
    • 评论 0
    • 0
    • 0

  • STM32的IIC据说是为了躲避专利问题,从而设计成了兼容IIC的一种接口,在单独的试用硬件IIC的时候没什么问题,但是在一个使用了多种接口的程序中,(比如就像四轴飞行器这样的程序中)STM32的硬件IIC会造成数据阻塞。所以使用软件模拟IIC的比较多。
    • 发布于2018-07-01
    • 举报
    • 评论 0
    • 0
    • 0

  • 多种原因使得I2C软的在大多数情况下是适应的。
    • 发布于2018-07-01
    • 举报
    • 评论 0
    • 0
    • 0

  • 刚用了STM32自带的I2C通信,没什么问题呀。软件模拟的话,可能是因为在51的基础上修改的吧。
    • 发布于2018-07-01
    • 举报
    • 评论 0
    • 0
    • 0

  • 应该是出现或这种情况,但是ST肯定不会让这种问题一致存在的吧,如果一直都有这样的问题,ST还能做出这么好的应用市场么? 有问题又无法改进的硬件问题,ST肯定是要停产或者限值使用的。
    • 发布于2018-07-02
    • 举报
    • 评论 0
    • 0
    • 0

  • 虽然我现在还是用的模拟I2C,但是感觉ST应该是在硬件I2C上有所改进,要不然这么多年的bug,ST肯定比较重视了
    • 发布于2018-07-02
    • 举报
    • 评论 0
    • 0
    • 0

  • stm32的iic不稳定这种说法源于旧版的函数库,由于iic本身是飞利浦发明的,飞利浦拆分出来的nxp具有绝对的专利优势,为了规避这种专利问题,st对iic通讯有别出一格的设计,但旧版的函数库无法很好地处理这种设计,导致多中断的时候容易出问题。但新版的hal库基本解决这种问题,可以放心使用。
    • 发布于2018-07-02
    • 举报
    • 评论 0
    • 0
    • 0

  • stm32其实就是为了避开专利。自己编写了一套复杂的i2c寄存器协议。那么,实际测试如何呢?根据测试所示,开机的时候,偶尔会出现i2c读取失败的情况,然后就尴尬了。重启是一个办法。最重要的是查处问题在哪里。经过调查发现,我们可以看到,复位之后,总线挂起,导致i2c1和i2c2都不能使用。这个时候就需要进行软件复位操作。最后,我们可以看到整个机子的正常运行。
    • 发布于2018-07-02
    • 举报
    • 评论 0
    • 0
    • 0

  • STM32的硬件I2C其实是没问题的,只是标准库里面的库函数有问题,如果操作寄存器是完全没问题的,只是比较麻烦

    新版的HAL库已经修复这个BUG了

    • 发布于2018-07-02
    • 举报
    • 评论 0
    • 0
    • 0

  • 硬件iic是没有问题的 都是很早之前的遗留问题 现在的hal库已经修复了
    • 发布于2018-07-15
    • 举报
    • 评论 0
    • 0
    • 0

  • 没有问题,网上都是那些不会使用I2C的,现在硬件i2c底层有的超时检测功能不会卡死
    • 发布于2018-07-22
    • 举报
    • 评论 0
    • 0
    • 0

  • STM32F103系列的硬件I2C存在通信时序的问题,在传输的时候会有很大几率出现卡死,而模拟I2C就没有这个问题,后面HAL库已经修复这个问题了,可以正常使用硬件I2C接口。

    • 发布于2018-07-28
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

stm32的IIC问题