下面是我曾作的项目中也是这个温度传感器的函数,仅供参考
/*/**************************************************************************************
// 功能描述: 读取温度值,返回uint类型数据
//mode=0为启动温度转换 mode=1读取温度寄存器
//**************************************************************************************/
unsigned int ReadTemp(unsigned char mode) //mode=0为启动温度转换 mode=1读取温度寄存器
{
unsigned char a = 0;
unsigned int b,t;
DS18B20Init();
DS18B20Write(0xCC); // 跳过读序号列号的操作 1100 1100
switch(mode)
{
case 0:
DS18B20Write(0x44); // 启动温度转换 0100 0100
return 0;
case 1:
DS18B20Write(0xBE); //读取温度寄存器 1011 1110
a = DS18B20Read(); //低位
b = DS18B20Read(); //高位
b <<= 8;
t = a+b;
return (t);
default:return 0; //(default不履行/不执行)
}
return (0);
} |