DS18B20的读写为什么不能通过寄存器寻址然后读写呢?向DS18B20写的数据是自动存储在那个高速暂存RAM里面吗?最后是
short DS18B20_Get_Temp(void)
{
u8 temp;
u8 TL,TH;
short tem;
DS18B20_Start (); // ds1820 start convert
DS18B20_Rst();
DS18B20_Check();
DS18B20_Write_Byte(0xcc);// skip rom
DS18B20_Write_Byte(0xbe);// convert
TL=DS18B20_Read_Byte(); // LSB
TH=DS18B20_Read_Byte(); // MSB
if(TH>7)
{
TH=~TH;
TL=~TL;
temp=0;//ζèÎa¸o
}else temp=1;//ζèÎaÕy
tem=TH; //»ñμø߰Ëλ
tem<<=8;
tem+=TL;//»ñμÃμ×°Ëλ
tem=(double)tem*0.625;//×a»»
if(temp)return tem; //·μ»ØζèÖμ
else return -tem;
}
DS18B20_Write_Byte(0xcc);// skip rom
DS18B20_Write_Byte(0xbe);// convert
这两个函数在这里是起什么作用的呢?如果没有会怎么样?
求老哥解答。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
原子哥我找到了,第一个是跳过64位ROM中的DS18B20序列号,第二个是发送温度转换指令。64位ROM存储64位的序列号,也就是高速暂存器是用来存储从环境中得到的温度值吗?
一周热门 更多>