【非官方】测试通过,STC32G/STC32F单片机上实现DS18B20测温,通过CDC串口直接返回
经过测试,可以在热门单片机STC32G12K128和STC32F12K54中实现DS18B20测温,将结果返回在CDC串口中,超低成本,任何开发板/试验箱(STC32系列即可)都可实现,没有局限,超级简单,容易懂,时序规范基于STC32系列单片机的DS18B20温度传感器应用实现
摘要: 本文介绍了一种基于STC32系列单片机的DS18B20温度传感器应用实现方案。该方案利用STC32G12K128和STC32F12K54单片机的强大功能,实现了DS18B20温度数据的采集,并通过CDC串口将数据实时返回。该方案具有低成本、易实现、通用性强等特点,适用于各种开发板和试验箱。
关键词: STC32系列单片机,DS18B20,温度传感器,CDC串口
1. 引言
DS18B20是一款常用的数字温度传感器,具有单总线接口、精度高、功耗低等优点,广泛应用于各种温度测量场合。STC32系列单片机是国产高性能单片机,具有丰富的外设资源和强大的处理能力,能够满足各种应用需求。
2. 硬件设计
本方案采用STC32G12K128或STC32F12K54单片机作为主控芯片,DS18B20温度传感器作为温度采集器件。硬件连接图如图1所示。
!硬件连接图
3. 软件设计
软件设计主要包括DS18B20初始化、温度数据读取、数据转换和串口通信等部分。
3.1 DS18B20初始化
DS18B20初始化包括复位、写配置寄存器等操作。具体代码如下:
c
void DS18B20Init(void)
{
// 复位DS18B20
DS18B20Reset();
// 写配置寄存器
DS18B20WriteByte(0x4E);
DS18B20WriteByte(0x7F);
DS18B20WriteByte(0x1F);
}
3.2 温度数据读取
温度数据读取包括启动温度转换、读取温度数据等操作。具体代码如下:
```c
float DS18B20ReadTemp(void)
{
// 启动温度转换
DS18B20Reset();
DS18B20WriteByte(0xCC);
DS18B20WriteByte(0x44);
// 等待温度转换完成
while(!DS18B20ReadBit());
// 读取温度数据
DS18B20Reset();
DS18B20WriteByte(0xCC);
DS18B20WriteByte(0xBE);
uint8t tempL = DS18B20ReadByte();
uint8t tempH = DS18B20ReadByte();
// 计算温度值
int16t temp = (tempH
[本文内容由国芯人工智能辅助生成,仅供参考]
页:
[1]