提問者:nisipm2013-07-16 00:00
a=read_byte(); //讀取溫度低八位的數(shù)據(jù) b=read_byte(); //讀取溫度高八位的數(shù)據(jù) t =(b*256+a)*25; return(t>>2); 很多人是這樣寫的,那后面的轉(zhuǎn)換過程到底是什么意思,為什么高八位數(shù)據(jù)要乘256,最后乘25是什么意思,還有返回t>>2????不懂,而且不是說還要
乘以256是為了將讀過來的數(shù)據(jù)轉(zhuǎn)換成十進(jìn)制數(shù),再乘以25,然后在返回值里又左移了2,相當(dāng)于(b*256+a)*0.0625*100!這段程序應(yīng)該沒有判斷正負(fù)的語句!你多看看DS18B20的手冊(cè)就會(huì)明白了!那里面說的很明白的!
回答者:dorsi_8fu2016-07-16 00:00
1:第一個(gè)劃橫線部分為延時(shí)函數(shù)大約為11.4ms,為什么要這么延時(shí)?數(shù)據(jù)手冊(cè)上說了嗎?我特意看了下英文手冊(cè),10位轉(zhuǎn)換的時(shí)間就是187.6ms,12位轉(zhuǎn)換的時(shí)間是750ms,你看的那個(gè)延時(shí)時(shí)間還不一定對(duì)。2:第二個(gè)劃橫線
提問者:ChinaGHT2016-08-05
(1)異響與發(fā)動(dòng)機(jī)轉(zhuǎn)速的關(guān)系 發(fā)動(dòng)機(jī)的大多數(shù)常見異響的存在取決于發(fā)動(dòng)機(jī)的轉(zhuǎn)速狀態(tài)! 、佼愴憙H在怠速或低速運(yùn)轉(zhuǎn)時(shí)存在。發(fā)響的原因有:活塞與氣缸壁間隙過大;活塞銷裝配過緊或連桿軸承裝配過緊;挺桿與其導(dǎo)孔間隙過大;配氣凸輪
提問者:zzty09282016-01-18
任何外設(shè)的初始化或者命令如果能夠得到返回值確定完成或者未完成才能讓單片機(jī)選擇是否進(jìn)行下一步,更能讓編程人員得到錯(cuò)誤信息正確的調(diào)試錯(cuò)誤
提問者:wangyunfeng1382016-09-20
樓主你在時(shí)序上有些錯(cuò)誤1。在轉(zhuǎn)換時(shí)沒有留夠足夠的轉(zhuǎn)換時(shí)間。根據(jù)DS18B20芯片手冊(cè),9位精度轉(zhuǎn)換時(shí)間為93.75ms。12位精度轉(zhuǎn)換時(shí)間為750ms。而DS18B20默認(rèn)為12位精度。所以我加了750ms延時(shí)2。在寫函
提問者:rockchunyang2016-12-23
高五位S為符號(hào)位,分辨率為0.0625。正溫度把16進(jìn)制數(shù)轉(zhuǎn)成10進(jìn)制即可;負(fù)溫度把16進(jìn)制數(shù)取反后加1再轉(zhuǎn)成10進(jìn)制數(shù),第一個(gè)是00FA是(15*16+10)*0.0625=15.62度,第二個(gè)是0032是(3*16+
提問者:e7w9e6o4a22014-11-16
把tplsb和tpmsb都是8位的合成一個(gè)16位的有符號(hào)數(shù)tt;temp為浮點(diǎn)數(shù) t=tpmsb<<8; t=t|tplsb; if(t<0) //負(fù)溫
提問者:z78782013-06-13