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

STM32 的I2C 外设怎么会有问题呢

明有几时有 2017-07-05 浏览量:2931
为什么一用STM32的I2C都是要模拟的,几乎没有人用啊。
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 总是卡死吧。


    为了规避菲利普专利问题,设计的特别复杂,导致特别容易错过反馈信号,一中断反馈信号没了整个程序就崩溃了。现在hal库应该是解决了这个问题解决方法是关闭所有中断,但是实时性就不好了。

     

    关于硬件I2C的一个测试可以看看这里:

    http://www.cnblogs.com/humaoxiao/p/4507765.html
    对于ST公司推荐的将I2C工作在DMA和最高优先级的中断,虽然这样可以用,但是要是有更高优先级的任务只能被I2C打断了。

     

    对于GD32,好像就没有这个问题

    如果是新项目,可以试试换芯片,如果是旧项目,最好用模拟的吧。


    • 发布于 2017-07-05
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:7
  • STM32的I2C没有问题啊,建议你还是直接用CubeMX去生成新工程,这样比较方便,底层代码都已经实现了
    • 发布于2017-07-05
    • 举报
    • 评论 0
    • 0
    • 0

  • I2C外设使用的时候会时好时坏,建议用模拟I2C.
    • 发布于2017-07-05
    • 举报
    • 评论 0
    • 0
    • 0

  • 您是用標準庫嗎? 建議使用HAL庫,配合CubeMX使用看看

    新版本已經修正很多問題了,不太再需要軟I2C

    以上

    • 发布于2017-07-05
    • 举报
    • 评论 0
    • 0
    • 0

  • 硬件IIC设计上有些不好用,所以一般都是用模拟的
    • 发布于2017-07-05
    • 举报
    • 评论 0
    • 0
    • 0

  • STM32F103的硬件IIC是有BUG的,当发送了一条信息之后会陷入忙等待死循环,这是F103独有的BUG,在F4里面已经修复了,F4的硬件IIC没有任何问题。同时,使用硬件IIC驱动模块之前一定要看清楚模块的PDF文档,因为不同的模块对IIC主机的延时和电平电压要求都不一样,有的要求低(如DS3231),有的要求高(如AT24CXX)。

    这里有个硬件IIC读写AT24CXX的代码,可供参考:http://bbs.elecfans.com/forum.php?mod=viewthread&tid=534834​

    觉得能帮到你就采纳把,谢谢。

    • 发布于2017-07-05
    • 举报
    • 评论 0
    • 0
    • 0

  • 过去是有bug,只能软串口,但是完全不影响使用啊
    • 发布于2017-07-05
    • 举报
    • 评论 0
    • 0
    • 0

  • 现在基本上不是没有问题了吗
    • 发布于2017-07-05
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

STM32 的I2C 外设怎么会有问题呢