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

STM32的硬件IIC问题

ASMDA 2019-03-23 浏览量:611
为什么用标准库的IIC不能使用,用HAL库就可以
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 标准库的I2C驱动有个BUG,就是它的应答没有超时,因此使用I2C高概率会卡死在那些while里面,新版的HAL库对外设操作增加了超时机制,一段时间没有应答就会视为操作失败退出。其实SPI那些也有类似问题,有些SPI设备时序有问题的,用标准库的SPI也会卡死
    • 发布于 2019-03-23
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:7
  • 其实STM32的硬件IIC是没有任何问题的,只是标准库的函数非常复杂,导致标准库存在问题,HAL库中已经修复了这个问题,所以可以正常使用
    • 发布于2019-03-23
    • 举报
    • 评论 0
    • 0
    • 0

  • 标准库操作起来复杂,而且原先存在bug不过现在hal库修复了
    • 发布于2019-03-23
    • 举报
    • 评论 0
    • 0
    • 0

  • 标准库存在问题但是后来HAL库修复了原先的问题
    • 发布于2019-03-23
    • 举报
    • 评论 0
    • 0
    • 0

  • 标准库的IIC有一个bug,就是可能会一真的等总线,而不运行其他的程序,而HAL库中修复了这个bug
    • 发布于2019-03-23
    • 举报
    • 评论 0
    • 0
    • 0

  • 标准库的硬件IIC有一个bug,有时会不应答,但是HAL中进行了修复,技能书 中断先关了后进行了通讯
    • 发布于2019-03-23
    • 举报
    • 评论 0
    • 0
    • 0

  • 标准库的IIC可以使用,但是不好配置,使用模拟IIC更方便
    • 发布于2019-03-24
    • 举报
    • 评论 0
    • 0
    • 0

  • STM32的IIC设计因为要绕过友商的专利,实现时是复杂了一些,但是硬件功能没有任何问题,之所以使用标准库会出现卡死的bug,也不是硬件造成的,而是标准库对于IIC应答没有超时机制引起的,所以是软件问题,在HAL库中通过软件设计修正的这一bug,所以HAL库中IIC驱动还是很好用的。
    • 发布于2019-04-20
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

STM32的硬件IIC问题