我造轮子,你造车,创客一块儿造起来!塔克创新资讯【塔克社区 www.xtark.cn 】【塔克博客 www.cnblogs.com/xtark/ 】 编程
本文介绍X-CTR100控制器 扩展DS18B20温度传感器。 函数
DS18B20 是美信公司的一款温度传感器,单片机能够经过 1-Wire 协议与 DS18B20 进行通讯,最终将温度读出。1-Wire 总线的硬件接口很简单,只须要把 DS18B20 的数据引脚和单片机的一个 IO 口接上就能够了。硬件的简单,随之而来的,就是软件时序的复杂。 ui
DS18B20 经过编程,能够实现最高 12 位的温度存储值,在寄存器中,以补码的格式存储。 spa
一共 2 个字节,LSB 是低字节,MSB 是高字节,其中 MSb 是字节的高位,LSb 是字节的低位。你们能够看出来,二进制数字,每一位表明的温度的含义,都表示出来了。其中 S表示的是符号位,低 11 位都是 2 的幂,用来表示最终的温度。DS18B20 的温度测量范围是从-55 度到+125 度,而温度数据的表现形式,有正负温度,寄存器中每一个数字如同卡尺的刻度同样分布。 blog
初始化DS18B20温度传感器,获取温度值并输出显示。 接口
硬件资源: 资源
硬件链接: get
模块链接到LI接口,数据接口链接PA4,做为普通GPIO口使用。 博客
X-SOFT软件生态,X-API文件以下。 it
ax_ds18b20.c——X-CTR100 扩展DS18B20传感器源文件
ax_ds18b20.h——X-CTR100 扩展DS18B20传感器头文件
操做函数以下:
uint8_t AX_DS18B20_Init(void); //DS18B20初始化 int16_t AX_DS18B20_ReadTemp(void); //DS18B20读取温度 |
主程序代码以下。
int main(void) { int16_t temperature;
//X-CTR100初始化 AX_Init(115200); printf("***X-CTR100 DS18B20温度传感器例程***\r\n\r\n");
//DHT11初始化 while (AX_DS18B20_Init()) { printf("错误,请检查DS18B20是否安装正确!!\r\n"); AX_Delayms(500); }
while (1) { temperature = AX_DS18B20_ReadTemp(); //读取温度值
printf("温度值X10:%d \r\n", temperature);
AX_Delayms(1000); } } |
运行效果以下图所示。