礼品代发网

礼品代发网

收录130107113题,礼品代发网免费搜题解答

今日已更新0道题

stm8I如何测温度-stm32控制ds18b20检测温度

2025-11-08 06:24:50  

stm8I如何测温度-stm32控制ds18b20检测温度

优质解答

STM8单片机测温度主要接上DS18B20传感器,写代码让单片机读数据,转换成温度数字显示出来。先接传感器红线到单片机3.3V,黑线接地,中间线接IO口。单片机启动后不断循环读取传感器数据,数据是16位二进制,转换成十进制再除以10就是实际温度。比如测到0x0000就是0度,0x0192就是19.2度。

为什么这样操作呢?因为DS18B20是单总线传感器,必须严格按协议发送触发命令、读温度命令和读数据命令。比如接上传感器后,单片机先发一个重置信号(低电平480us),再发读数命令(低电平60us+高电平480us)。读数据时每接收到一个高电平就是1位数据,共9位温度位+5位符号位+6位分辨率位。根据DS18B20手册,温度分辨率有9位(-0.5℃到+125.0℃)和10位(-0.25℃到+125.0℃)两种模式,默认是9位。比如测到0x01A3就是-35.5℃,因为最高位是1表示负数,后面8位是35.5℃。单片机接收到数据后要延时10秒让传感器完成温度转换,期间不能乱发指令。比如接上传感器后,单片机先发重置,再发读数命令,等传感器回应后才开始读数据,这样测出来的温度才准。

本题链接:

STM8测温度DS18B20