下面是我曾作的項目中也是這個溫度傳感器的函數,僅供參考
/*/**************************************************************************************
// 功能描述: 讀取溫度值,返回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);
} |