你好,我现在写程序遇到了一些问题,ds18b20的显示总是不稳定,我觉得也是时序的问题,希望你能帮助我
发布网友
发布时间:2022-04-23 18:40
我来回答
共3个回答
热心网友
时间:2023-10-13 08:28
你好:
ds18b20不是iic协议,是单总线协议。
然后,你说显示不稳定是不是这样,每当出现不稳定时,电机是否开始启动了,显示都是像才上电那样慢慢趋近环境温度。
如果差不多是这样,多半应该是电机驱动问题,当单片机驱动电机时,功率是很大的,此时也许会导致驱动的其他器件功率不够,当电机停下时其他器件又恢复稳定,电机启动后又驱动不了了。
还有就是,定时器中断的问题,问题可能没多大问题,但是同一个定时器最好不要用来做许多事,除非你能很好把握标志量的使用。
有不懂的地方随时回复我。
希望我的回答能帮助到你。
热心网友
时间:2023-10-13 08:29
18b20只是测温芯片,一般来说I2C的输出比较稳定的,如果不稳定又可能是:
18b20的电源引脚接触不可靠;芯片所在位置受外界影响较大[比如靠近芯片,电机等];I2C程序有问题[这个不一定,因为I2C程序到处都有,比较成熟];
还有一种可能是中断级别的影响,即测温中断级别低于红外和电机控制.追问我的ds18b20程序显示是没有问题的,我把这个程序单独拿出来的时候显示是稳定的,但是和红外和电机加在一起显示就不稳定了,如果是中断级别的影响,我应该怎么改变呢,因为我现在这三个模块我是用的一个定时器
追答用同一个定时器,你的定时一样吗?如果不一样,除非分段定时----即完成一个定时后再装填另一个的定时,依次循环
热心网友
时间:2023-10-13 08:29
因为DS18B20的延时太长,实时性太差,特别是在比较大的系统中,如果用程序循环延时就会有这样的问题,你试试改用中断来做比较长的延时为DS18B20操作试试。