STM32读取 DS18B20 温度传感器

        DS18B20是常用的数字温度传感器,和DHT11一样采用单线接口方式,STM32通过一个IO改变输入输出状态即可读取温度。与DHT11不同的是DS18B20支持多点组网功能,多个DS18B20可以并联在数据线上,通过不同的ID来读取不同点的温度。DS18B20测温范围为-55℃~+125℃,在-10~+85℃时精度为±0.5℃,测量精度和范围都比DHT11要高。

DS18B20引脚排列:

STM32读取 DS18B20 温度传感器_第1张图片

市面上见到的DS18B20模块是DQ脚有上位电阻的,这样可以直接接到单片机的管脚上,不需要其他外围器件。

STM32读取 DS18B20 温度传感器_第2张图片

DS18b20内部结构主要由四部分组成: 64位光刻ROM、温度传感器、非挥发的温度报警传感器TH和TL、配置寄存器。

STM32读取 DS18B20 温度传感器_第3张图片

 每只DS18b20都有一个唯一的长达64位的只读存储器,存放在ROM中,低8位是ds18b20的单总线温度传感器,高8位是CRC循环冗余校验码,用以校正前56位是否正常,中间48位是一个唯一序列号,此64位只读寄存器常用于元器件的识别和匹配。

程序示例:

读DS18B20:

STM32读取 DS18B20 温度传感器_第4张图片

写DS18B20:

STM32读取 DS18B20 温度传感器_第5张图片

STM32读取 DS18B20 温度传感器_第6张图片

 跳过匹配ROM,适用于总线上只有一个DS18B20时:

STM32读取 DS18B20 温度传感器_第7张图片

执行匹配ROM,适用于总线上有多个DS18B20时:

STM32读取 DS18B20 温度传感器_第8张图片

温度格式:

STM32读取 DS18B20 温度传感器_第9张图片

获取DS18B20温度,不匹配ROM

STM32读取 DS18B20 温度传感器_第10张图片

获取DS18B20温度,匹配ROM:

STM32读取 DS18B20 温度传感器_第11张图片

STM32读取 DS18B20 温度传感器_第12张图片

获取DS18B20 ID:

STM32读取 DS18B20 温度传感器_第13张图片

 DS18B20读取的温度通过串口发出;

STM32读取 DS18B20 温度传感器_第14张图片

注意:DS18B20在上电第一次读取时显示温度为85℃,这是正常的。85摄氏度是DS18B20在上电复位后在温度寄存器内的对应数字量,多读几次即可。

欢迎大家加入远望创客学堂QQ群,一起学习新知识。删除& —等特殊字符18&751-82&17。

你可能感兴趣的:(STM32,arduino,keil,stm32,驱动开发,c语言,开发语言,嵌入式硬件)