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

51单片机中断问题

与梦说心事 2018-11-17 浏览量:1001
为什么我的定时器一打开,就影响了DS18B20了呢,温度就读取不了了
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • DS18B20使用的是单总线通讯,它对时序要求严格,误差大约不能超过15uS

    所有的中断,如果执行的时间过长,都会影响单总线通讯

    所以,在读温度时最好把非必要的中断都禁止掉。某些实时性要求高的中断指令尽可能的少。

    • 发布于 2018-11-17
    • 举报
    • 评论 0
    • 3
    • 0

其他答案 数量:12
  • 18b20通讯时对延时要求很高,你的中断程序阻碍了18b20通讯中的延时
    • 发布于2018-11-17
    • 举报
    • 评论 0
    • 0
    • 0

  • 你中断没搞好影响了18b20的信息读取,导致温度读取不到
    • 发布于2018-11-17
    • 举报
    • 评论 0
    • 0
    • 0

  • 18B20的通信方式是异步单串行总线,在从机等待(BUSY WAITING)的时候不能被任何中断打断,而定时器中断打开了自然就会影响等待,数据就读不到了,自然通信失败。

    • 发布于2018-11-17
    • 举报
    • 评论 0
    • 0
    • 0

  • 单总线通信对时序的要求是非常高的,定时器中断执行时间稍微长一点都会有影响的
    • 发布于2018-11-17
    • 举报
    • 评论 0
    • 0
    • 0

  • 单总线中断就是这样,对时间要求比较严,程序上还是把其它中断先关掉在读温度吧,读完再开启!
    • 发布于2018-11-17
    • 举报
    • 评论 0
    • 0
    • 0

  • 18B20的读取与时序都是比较严格的,要看看你的定时器是不是影响了时序了
    • 发布于2018-11-17
    • 举报
    • 评论 0
    • 0
    • 0

  • 18B20时单总线(1-wire),对时序要求很高,当有中断产生时会影响18B 20时序时间,所以当18B 20读取数据时禁止中断
    • 发布于2018-11-18
    • 举报
    • 评论 0
    • 0
    • 0

  • 先关定时中断,然后操作,最后再打开定时中断。
    • 发布于2018-11-19
    • 举报
    • 评论 0
    • 0
    • 0

  • 定时器应该是影响了程序运行,导致I2C的高低电平延时时间出错了
    • 发布于2018-12-05
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个要关掉你的定时器,有可能是你的定时器影响的
    • 发布于2018-12-23
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

51单片机中断问题