“大神”叫你先上STM32,51是小朋友玩的,所以你就不學(xué)51了
初學(xué)者建議從51單片機(jī)開始,雖然很多人建議直接上STM32,但本人還是建議先學(xué)習(xí)51單片機(jī),簡單且不容易打消積極性,很多人都是在積極性消退之后就會(huì)半途而廢,等熟悉了LED、串口、SPI、按鍵、中斷、IIC等這些基礎(chǔ)之后,如果對(duì)單片機(jī)還有興趣,不妨再去晉升學(xué)習(xí)STM32單片機(jī),有了51單片機(jī)作為基礎(chǔ),這時(shí)候?qū)W習(xí)STM32也是可以非常快的就能上手。
一般的寄存器的定制是從0開始定義,0000這個(gè)寄存器地址存放的是溫度的一個(gè)數(shù)據(jù),然后0001這個(gè)采用的是濕度的數(shù)據(jù),它們兩個(gè)數(shù)據(jù)的范圍都是0到65535,并且都是只讀的,所以它適用于的是03這個(gè)功能,組態(tài)地址就不用關(guān)心了,這個(gè)是PLC當(dāng)中用的一個(gè)組態(tài)地址,實(shí)際上這個(gè)組態(tài)地址等于寄存器地址加上4001,要把它轉(zhuǎn)成十進(jìn)制去加上4001,這個(gè)是一個(gè)規(guī)定,可以去設(shè)置自己的寄存器的地址,然后來說明你的寄存器里面存放的是什么值,別人讀的時(shí)候就知道怎么去讀了。
比如說想讀的是你當(dāng)前的波特率,那我可以用03這個(gè)功能,從0067這個(gè)地址起始地址開始讀,讀一個(gè)寄存器是不是就讀的就是你的波特率,給一個(gè)校驗(yàn)碼就應(yīng)該就能夠響應(yīng)什么是你的波特率的數(shù)據(jù),同時(shí)波特率它也告訴我們,波特率它是可讀可寫的,既然可讀可寫,它應(yīng)該提供的06功能碼,就可以寫單個(gè)寄存器,也可以用0六這個(gè)功能碼去對(duì)它進(jìn)行操作,比如更改它的設(shè)備地址,修改它的波特率,這些都是可以的。
溫濕度傳感器USB接口和485信號(hào),它們倆之間是肯定不能直接通信的,可以借助一個(gè)小模塊,USB轉(zhuǎn)485的模塊,這種模塊現(xiàn)在也不貴,感興趣的可以去入手一個(gè),這里面有四根線,電源線,還有兩根信號(hào)線,然后A線接傳感器的A,B接傳感器的B,電路連好了之后就可以借助助手來實(shí)現(xiàn)這個(gè)通訊的功能的測試,它支持的是主機(jī)問詢,從機(jī)應(yīng)答的一種方式,所以主機(jī)要去問它,它才會(huì)給你回答。
在這種主從系統(tǒng)當(dāng)中,從機(jī)設(shè)備是不允許主動(dòng)的發(fā)起通信的,我們要想通信必須由主機(jī)發(fā)起,我們可以去打開這個(gè)串口,然后去發(fā)送我們的問詢,讀兩個(gè)字節(jié),從0000這個(gè)寄存器地址起始地址開始讀,讀寄存器在讀計(jì)算器,也就是把溫度和濕度都讀出來,這個(gè)時(shí)候還有一個(gè)校驗(yàn)碼,校驗(yàn)的話是CRC校驗(yàn),校驗(yàn)碼不對(duì)它是肯定是不會(huì)響應(yīng)的,這個(gè)時(shí)候它給出了一個(gè)響應(yīng)0103,然后04,01代表01地址,03的功能碼,0四代表返回的數(shù)據(jù)長度四個(gè)字節(jié),返回的值是048915B2,它這里面的數(shù)據(jù)的值都是16進(jìn)制的。
16進(jìn)制值首先要把它轉(zhuǎn)成十進(jìn)制數(shù),舉個(gè)例子0079,它轉(zhuǎn)成十進(jìn)制是121,假設(shè)數(shù)據(jù)的倍率是100倍,這個(gè)值應(yīng)該是1.21度,濕度也是一樣的,所以它這個(gè)地方有一個(gè)倍率是100,要控制一個(gè)485的一個(gè)接口芯片,首先轉(zhuǎn)成發(fā)送狀態(tài),轉(zhuǎn)成發(fā)送狀態(tài)之后發(fā)送問詢幀,發(fā)送問詢之后立馬切換成接收狀態(tài),然后接收這一幀數(shù)據(jù),用超時(shí)的辦法去接收,接收完這么一包數(shù)據(jù)之后要解析這個(gè)數(shù)據(jù),把這兩個(gè)數(shù)據(jù)取出來轉(zhuǎn)成十進(jìn)制,然后按照它這個(gè)數(shù)據(jù)的方式把它再除以100,就可以轉(zhuǎn)成當(dāng)前的溫度和濕度。
對(duì)單片機(jī)感興趣的可以查看往期分享內(nèi)容,希望能幫助大家在學(xué)習(xí)單片機(jī)的路上少走一些彎路,想要入門單片機(jī)可以持續(xù)關(guān)注創(chuàng)為單片機(jī)編程,,回復(fù)“帶我學(xué)習(xí)”查看更多內(nèi)容分享。
審核編輯:湯梓紅
-
寄存器
+關(guān)注
關(guān)注
31文章
5250瀏覽量
119193 -
STM32
+關(guān)注
關(guān)注
2257文章
10828瀏覽量
352433 -
51單片機(jī)
+關(guān)注
關(guān)注
272文章
5689瀏覽量
122144
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論