① 單片機里I2C溫度感測器採集的溫度如何傳到上位機上位機怎麼處理數據
1、利用串口通訊將單片機採集的溫度數據傳給上位機,譬如上位機可以用VC++開發2、上位機在串口接收數據事件中,可參考如下代碼:voidCSCommTestDlg::OnComm(){//TODO:_inp;COleSafeArraysafearray_inp;LONGlen,k;BYTErxdata[2048];//設置BYTE數組An8-bitintegerthatisnotsigned.CStringstrtemp;if(m_ctrlComm.GetCommEvent()==2)//事件值為2表示接收緩沖區內有字元{variant_inp=m_ctrlComm.GetInput();//讀緩沖區safearray_inp=variant_inp;//VARIANT型變數轉換為ColeSafeArray型變數len=safearray_inp.GetOneDimSize();//得到有效數據長度for(k=0;k<len;k++)safearray_inp.GetElement(&k,rxdata+k);//轉換為BYTE型數組for(k=0;k<len;k++)//將數組轉換為Cstring型變數{BYTEbt=*(char*)(rxdata+k);//字元型strtemp.Format("%d",bt);//將字元送入臨時變數strtemp存放m_strRXData=strtemp;//加入接收編輯框對應字元串}}UpdateData(FALSE);//更新編輯框內容}② 如何實現java程序與微信公眾平台之間實現消息推送
java程序與微信公眾平台之間實現消息推送方法:③ 單片機流水燈實驗原理
上一節我們介紹了什麼是匯流排的方法,以及如何通過十六進制來控制IO口。並把我們的之前單點操作的流水燈進行了改進,成為了一個新的更加簡潔的程序。這回,就再用匯流排方法,來實現流水燈的更加多樣化的操作。
這次,我們要實現正向流水結束後再反過來流水,如此循環。然後再間隔閃爍。然後再累積流水,最後結束。
正向流水結束,再反過來。這個如何實現呢,我們需要使用到一些運算方法。
第一個是移位指令<<。
由於數字對比不強,看的不是很清晰,所以把數字給換成紅色了。
<<這個標志符的意思是,向左移動一位,就像下邊這樣:
1111 1111》1111 111_
移動完成後,會發現,最低位空出來了,此時程序會自動去填補一個0。於是就成了:
1111 1111》1111 111_》1111 1110
第一次移位1111 1110,第二次在第一次基礎上移位1111 1100,第三次在第二次基礎上移位1111 1000,如此循環,就可以一直把所有位都變成0。
我們在看下一句"|",這個符號是或的意思,我們知道,邏輯中的或,是說只要有其一為一,結果就是一。所以,我們把1100|0001,結果就是頭兩個一和最後一個一留下來,第三位因為都是0,所以就是0.結果就是1101了。當再次移位後,數據就變成1010了,我們再次跟0001取或,最後一位就再次置1,結果就是1011,從結果上看,1110》1101》1011……就是0在不斷的左移。
通過這個方法,可以讓每一位都會單獨置零。然後再給以一定時間的延時,就會看到流水燈了。
如果我們不賦初值0xfe會出現什麼情況?
就會出現,移位產生一個0,在或運算時就會被重新置1,如此循環,就進入不到第二個LED,也就不會出現流水燈了。可以自己嘗試下。
向右流水,效果是一樣的,需要注意的是初值更改為左側為0,就是0x7f,0111 1111,然後移位符號>>,還有取或的語句需要用0x80,1000 0000.
基本上是在左移位的基礎上稍作修改即可。
接下來是閃爍的。
閃爍,我們用的是間隔LED的方法,就是隔一個亮一個,埠輸出是1010 1010。翻譯成十六進制就是0xaa。這次用到的是一個取反的運算,就是把每一位的0變成1,1變成0,然後延時一段時間,再次取反,循環幾個周期,就看起來像是不斷閃爍。取反的操作相對好理解一些,就是這一位,現在是1,那麼取反後就是0,就是0和1的變換。
最後是一個累積點亮LED。
這個程序就是把第一個我們向左移位的函數,進行了更改,取消了賦初值,不用取或了,這樣就可以對比著理解,各個語句的作用,如果不使用,會產生什麼結果。如果我們的第一個函數不用取或這一步,那最終輸出結果就和這個現象一樣了。
所以,我們在寫程序時,需要認真,仔細分析自己需要的結果,然後對照程序進行簡單的演算。保證每一段都是可以輸出想要的結果,不然累積到最終,幾百行的代碼,看起來就會頭疼的,尤其是在沒有標注釋的情況下,有時就會忘記自己為什麼要寫這一句。
好的,這篇先說到這里,有問題或建議可以留言或私信給我。
想了解更多精彩內容,快來關注小亮談電氣
更多多內容,歡迎關注百家號:小亮談電氣。微信公眾號:電氣學苑。