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

用硬件i2c的时候程序卡死,这是什么原因

597362385 2018-07-03 浏览量:1918
用硬件i2c的时候程序卡死,这是什么原因
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 楼主没有说是什么单片机啊,是STM32还是51之类 的呢

    STM32的硬件IIC是有问题的,除非使用最新的HAL库,其他的库或是寄存器方式会卡在时序等待的地方,

    51的要是卡死,可能是你的时序问题了

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

其他答案 数量:9
  • 应该用的是旧版库,旧版库的I2C有问题,建议用新的HAL库或者LL库
    • 发布于2018-07-03
    • 举报
    • 评论 0
    • 1
    • 0

  • 代码不贴上来,芯片也没有说明,你让人怎么分析。。。基本上先考虑是不是寄存器配置错了
    • 发布于2018-07-03
    • 举报
    • 评论 0
    • 0
    • 0

  • 整体程序都有什么功能,程序只有用IIC 硬件的没,没有其他程序么,要把问题详细一下
    • 发布于2018-07-03
    • 举报
    • 评论 0
    • 0
    • 0

  • 是不是没有使用HAL库啊,这种是由于在通讯时,进入了中断,而丢了IIC的响应
    • 发布于2018-07-03
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个要看你的是什么平台,一般硬件操作卡死很多都是和你的软件驱动时序有关
    • 发布于2018-07-04
    • 举报
    • 评论 0
    • 0
    • 0

  • 现在新版的库都有超时检测功能,不会锁死I2C了
    • 发布于2018-07-11
    • 举报
    • 评论 0
    • 0
    • 0

  • 应该是iic通讯时被中断了 导致iic无响应 使用新板的hal库 不会有这种情况发生
    • 发布于2018-07-11
    • 举报
    • 评论 0
    • 0
    • 0

  • IIC被其他任务打断导致不能得到响应就会一直在等待,要检查一下你的IIC是不是被打断通信了
    • 发布于2018-07-15
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个是I2C通信中,从机收不到主机发过来的确认信号,不断busy waiting,这样程序就卡死了。

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

相关问题

问题达人换一批

用硬件i2c的时候程序卡死,这是什么原因