串列埠是可以傳送16進位制的數的。我常用的簡單方法是,在微控制器裡這樣寫: int t; float tt; //溫度值 char i; unsigned char *p; Init_DS18B20(); WriteOneChar(0xCC); //跳過讀序號列號的操作 delay(40);//delay(4); WriteOneChar(0xBE); //讀取溫度暫存器等(共可讀9個暫存器) 前兩個就是溫度 a=ReadOneChar(); b=ReadOneChar(); t=b; t=0;i--){ TI = 0; SBUF = p[i]; while(TI==0);} 到計算機這邊,在把他轉換回來就好了;例如:BYTE RECV[4]; // 這是計算機收到的字串;float *fp = (float*)RECV;float t = *fp; //t裡就是收到的18B20的溫度了
串列埠是可以傳送16進位制的數的。我常用的簡單方法是,在微控制器裡這樣寫: int t; float tt; //溫度值 char i; unsigned char *p; Init_DS18B20(); WriteOneChar(0xCC); //跳過讀序號列號的操作 delay(40);//delay(4); WriteOneChar(0xBE); //讀取溫度暫存器等(共可讀9個暫存器) 前兩個就是溫度 a=ReadOneChar(); b=ReadOneChar(); t=b; t=0;i--){ TI = 0; SBUF = p[i]; while(TI==0);} 到計算機這邊,在把他轉換回來就好了;例如:BYTE RECV[4]; // 這是計算機收到的字串;float *fp = (float*)RECV;float t = *fp; //t裡就是收到的18B20的溫度了