DS18B20放在定时器中断中读取不了温度
时间: 2023-08-17 11:04:39 浏览: 202
DS18B20读取系列号程序(有了他就能温度多点测试咯)
4星 · 用户满意度95%
如果你将DS18B20的读取代码放在定时器中断服务函数中,可能会因为中断服务函数执行时间过长而导致读取失败。因为中断服务函数是以中断方式被调用的,它需要在规定时间内完成任务并退出,否则会影响系统的其他操作。
解决这个问题的方法通常是采用异步读取方式,即在中断服务函数中仅仅触发一次读取操作,然后在主程序中通过轮询或者状态机的方式来读取传感器数据。这样可以确保中断服务函数尽快执行完毕,不会影响系统的稳定性。
具体实现方法可以使用定时器来触发读取操作,然后在主程序中使用一个标志位来表示读取操作是否完成,如果完成则在主程序中读取传感器数据并进行相应的处理。需要注意的是,在主程序中读取传感器数据时,要确保读取的时间不会影响系统的其他操作。
阅读全文