|
【單片機(jī)入門】【剛碼好的字一下子都沒(méi)了,第二次碼有點(diǎn)消極怠工了...】
剛開(kāi)始鼓搗了兩天單片機(jī),終于小有收獲。做了兩件事,將HC-06藍(lán)牙模塊與單片機(jī)連接,實(shí)現(xiàn)手機(jī)藍(lán)牙端和單片機(jī)的通信;利用DHT11采集到的溫濕度數(shù)據(jù)通過(guò)藍(lán)牙實(shí)時(shí)傳給手機(jī)端顯示。
1.藍(lán)牙
硬件上,我直接將藍(lán)牙模塊與單片機(jī)的串口處連接(藍(lán)牙-單片機(jī): VCC-5V, GND-GND, RX-TX,TX-RX)?。軟件上,由于HC-06的資料比較少,我下載了幾個(gè)HC-05的程序看,發(fā)現(xiàn)都是講RX/TX(發(fā)射/接收端)接在單片機(jī)IO的情況。這才意識(shí)到,如果藍(lán)牙模塊是直接連在串口端的話,寫代碼相當(dāng)于只是串口通信了。所以嘗試打開(kāi)串口實(shí)驗(yàn)(這個(gè)大家都有的,買單片機(jī)老板都會(huì)送,這個(gè)程序要實(shí)現(xiàn)的是STM32通過(guò)串口和上位機(jī)的對(duì)話,STM32在收到上位機(jī)發(fā)過(guò)來(lái)的字符串后,原原本本的返回給上位機(jī),需要注意在上位機(jī)輸入的字符串末尾加入回車鍵,否則無(wú)響應(yīng)),幾乎不需要改動(dòng)什么,燒進(jìn)去之后看結(jié)果。首先藍(lán)牙的LED燈亮了,是個(gè)好現(xiàn)象。手機(jī)打開(kāi)藍(lán)牙串口助手的客戶端,也成功配對(duì)了藍(lán)牙(默認(rèn)密碼是0000或1234)。但是手機(jī)端顯示的卻是亂碼,我估計(jì)可能是不能識(shí)別中文的原因,所以將程序里所有輸出的中文都改成簡(jiǎn)版的英語(yǔ),這樣也能知道輸出的是哪個(gè)部分。重新燒了一次,結(jié)果如下圖:
?這才看出來(lái),是一直提示“input”,結(jié)果是正確的,可以返回我輸入的字符串,但是單詞都得分幾次才能出來(lái),顯然是軟件不合適。重新找了個(gè)軟件,成功解決問(wèn)題,實(shí)現(xiàn)了實(shí)驗(yàn)要求。而一直提示input,是由于這段代碼:
這句話原本是times 0==0,所以致使頻繁輸出input,將時(shí)間拉長(zhǎng)就明顯好多啦~
2.溫濕度
?DHT11的代碼在網(wǎng)上也很方便的找得到,問(wèn)題在于如何修改。這個(gè)模塊只有三個(gè)引腳,很自然的高接高,地接地,但是數(shù)據(jù)線接哪需要看程序是怎么給的。程序里有dht11.c和dht11.h,可以看到程序是要求數(shù)據(jù)線接單片機(jī)的PG11管腳,但是我的單片機(jī)并沒(méi)有這個(gè)管腳,這就很麻煩了,需要改變兩個(gè)文件里對(duì)管腳的定義。為了使改動(dòng)的地方減少,我意圖改為PA11/PB11/PC11中的某個(gè)管腳。此時(shí),需要查看單片機(jī)的原理圖,看哪個(gè)管腳是空閑的,同時(shí)綜合板子上管腳的位置,我選擇了改為PC11。修改的程序如下圖(.c+.h):
?.c
.h
?但這個(gè)程序較為麻煩的是,主函數(shù)也得改,因?yàn)樵绦虻淖饔檬牵洪_(kāi)機(jī)的時(shí)候先檢測(cè)是否有DHT11存在,如果沒(méi)有,則提示錯(cuò)誤。只有在檢測(cè)到DHT11之后才開(kāi)始讀取溫濕度值,并顯示在LCD上,如果發(fā)現(xiàn)了DHT11,則程序每隔100ms左右讀取一次數(shù)據(jù),并把溫濕度顯示在LCD上。而我的要求是輸出到串口處。所以直接將所有LCD輸出的句子都刪去,改為printf即可。我仔細(xì)看了藍(lán)牙模塊的程序,主函數(shù)里并沒(méi)有特別的地方,直接用printf就輸出到了串口處了。可是這次卻不一樣,打開(kāi)手機(jī)藍(lán)牙端,沒(méi)有任何反應(yīng)。我百度了一下原因,http://blog.csdn.net/wdscq1234/article/details/7944036 這個(gè)鏈接給我?guī)椭馑际莗rintf需要重定向到串口處。我再一次打開(kāi)藍(lán)牙的keil工程,發(fā)現(xiàn)確實(shí)勾選“UseMicroLIB”了,所以想試試“Target——Code Generation——選中UseMicroLIB”的辦法,結(jié)果確實(shí)可靠。如下圖:
測(cè)試的溫度濕度準(zhǔn)不準(zhǔn)是一碼事,起碼連接和代碼是沒(méi)有問(wèn)題了~?
嗯,今天就這些。寶寶是純小白,希望大家指教!?
|
|