天堂v国产精品五月天老熟女久久|天天看黄色免费金沙 无码 中字|亚洲精品无码线AV无码专区在线|加勒比av福利色哟哟—精品人妻|最新黄片免费播了国产精品99ri|麻豆福利在线在线视频 91|无码久久久久每一日精品人妻|av一区亚洲午夜福利电影

下載手機(jī)汽配人

并行采集DS18B20(一個(gè)IO接一個(gè)傳感器),串口傳輸?shù)缴衔粰C(jī)

并行采集DS18B20(一個(gè)IO接一個(gè)傳感器),串口傳輸?shù)缴衔粰C(jī),如果一個(gè)傳感器壞了,不工作了(實(shí)際被我拔下來(lái)),在上位機(jī)上顯示其他通道是正常的,而這路的溫度就從拔下來(lái)的那個(gè)時(shí)刻的溫度就一直不變化了,為什么是這樣的?
問(wèn) 提問(wèn)者:網(wǎng)友 2018-08-27
最佳回答
其實(shí)我也發(fā)現(xiàn)了,當(dāng)時(shí)沒(méi)在意。隨便找了個(gè)程序看看,發(fā)現(xiàn)uint Get_Tmp() 是onewire讀兩次賦值給 a b,但一直沒(méi)有清0的操作,如果讀失敗則 a b 值沒(méi)被改變。建議18B20 初始化時(shí),賦值給 a b,取值是個(gè)很大或很小的數(shù),然后程序判斷是否超范圍,是則觸發(fā)報(bào)警 uint Get_Tmp() // 獲取溫度 get the temperature { float tt; uchar a,b; Init_Ds18b20(); // 初始化 Write_One_Byte(0xcc); // 忽略 ROM 指令 Write_One_Byte(0x44); // 溫度轉(zhuǎn)換指令 Init_Ds18b20(); // 初始化 Write_One_Byte(0xcc); // 忽略 ROM 指令 Write_One_Byte(0xbe); // 讀暫存器指令 a = Read_One_Byte(); // 讀取到的第一個(gè)字節(jié)為溫度 LSB b = Read_One_Byte(); // 讀取到的第一個(gè)字節(jié)為溫度 MSB temp = b; // 先把高八位有效數(shù)據(jù)賦于 temp temp <<= 8; // 把以上 8 位數(shù)據(jù)從 temp 低八位移到高八位 temp = temp|a; // 兩字節(jié)合成一個(gè)整型變量 tt = temp*0.0625; // 得到真實(shí)十進(jìn)制溫度值 // 因?yàn)?DS18B20 可以精確到 0.0625 度 // 所以讀回?cái)?shù)據(jù)的最低位代表的是 0.0625 度 temp = tt*10+0.5; // 放大十倍 // 這樣做的目的將小數(shù)點(diǎn)后第一位也轉(zhuǎn)換 為可顯示數(shù)字 // 同時(shí)進(jìn)行一個(gè)四舍五入操作。 return temp; } uint Get_Tmp() // 獲取溫度 get the temperature { float tt; uchar a,b; Init_Ds18b20(); // 初始化 Write_One_Byte(0xcc); // 忽略 ROM 指令 Write_One_Byte(0x44); // 溫度轉(zhuǎn)換指令 Init_Ds18b20(); // 初始化 Write_One_Byte(0xcc); // 忽略 ROM 指令 Write_One_Byte(0xbe); // 讀暫存器指令 a = Read_One_Byte(); // 讀取到的第一個(gè)字節(jié)為溫度
回答者:網(wǎng)友
產(chǎn)品精選
搜索問(wèn)答
還沒(méi)有汽配人賬號(hào)?立即注冊(cè)

我要提問(wèn)

汽配限時(shí)折扣

本頁(yè)是網(wǎng)友提供的關(guān)于“并行采集DS18B20(一個(gè)IO接一個(gè)傳感器),串口傳輸?shù)缴衔粰C(jī)”的解答,僅供您參考,汽配人網(wǎng)不保證該解答的準(zhǔn)確性。
遵义市| 武山县| 咸阳市| 中宁县| 安溪县| 竹山县| 宜兰市| 衢州市| 文水县| 绥宁县| 通许县| 穆棱市| 阳春市| 防城港市| 萍乡市| 旅游| 辉南县| 防城港市| 包头市| 额济纳旗| 揭西县| 田东县| 布拖县| 左云县| 红原县| 鱼台县| 长岭县| 毕节市| 思茅市| 皋兰县| 临泉县| 大荔县| 高青县| 双辽市| 来安县| 邯郸县| 综艺| 三江| 衡南县| 昌平区| 新巴尔虎左旗|