C語言小學生都能學會,你還說單片機很難,難道你連小學生都不如嗎
我是很認真的,沒有在跟你吹水,前段時間有鄰居知道我是攻城獅,閑聊的時候想讓我?guī)呐畠簩W習單片機,當時我就拒絕了,因為在我的認知范圍里這個年紀的小朋友很難學的會,而且女孩子家家學做什么攻城獅,心中一百個白眼翻上天,后來她說她女兒之前學了C++,有點基礎,當時我就愣住了,現(xiàn)在的小學生都那么牛X的嗎。不過最后我還是讓她回去慎重考慮一下,畢竟我這里培訓的定位是那些學習完之后想找到工作的,我們課程也是以項目驅動去學習,年紀這么小的學生學校里的科目課程就已經(jīng)眼花繚亂了,還是留一點童年給人家吧。
關于單片機要想修改它的設備地址寄存器地址,可以用后面的指令去修改,比如說要想改地址,可以用0106這個功能去修改它,比如說想改成02,就可以去按照它這個方式來去修改一下,比如說一個產品,從需要用兩個點的溫濕度傳感器,這個時候就用兩個,不可能讓它兩個都是用同一個地址,所以要改,比如買了一個產品,它默認的是01,要把它地址改成02,用00這個功能碼修改,它是寫單個寄存器,01可以是06,然后要更改這個設備地址,設備地址寄存器地址是0066,所以要是0066,接下來要改地址,要改的地址要給它個數(shù)據(jù)。
比如說要改成02,最后是校驗,這個時候給它發(fā)這個指令,它就會把這個地址改成02,點擊發(fā)送,對于一個正確的命令幀它會響應,手冊當中也會指出來它要說什么,它會響應修改后的設備地址02,然后功能碼00,接著是寄存器地址0066,最后是目標地址,修改的這個目標地址0002這個時候就修改好了,接下來如果說還用原來的這個地址去讀它,肯定就讀不出來了,可以試一下,再用01,03,然后用0000,然后0002,這個時候再去讀它的時候它就沒有響應。
它沒有響應,原因是什么?因為這個設備它的地址已經(jīng)不符了,發(fā)給它01的時候,它的設備地址是02,它第一次比較這個地址的時候,它就知道不是發(fā)給它的,所以它后面的數(shù)據(jù)是不會去解析處理,它就不會給你返回數(shù)據(jù),它只有對于正確的應詢問詢真它才會給出響應,要用0二,CRC校驗也要正確,然后功能碼03,然后連著讀兩個寄存器,從00這個寄存器開始讀,還是讀的溫度和濕度,這個地址對于這個位尋幀,它的交易碼可以通過工具,可以用這個來計算一下獲取,給出了具體的一個響應,功能碼返回字節(jié)數(shù),后面是校驗,這時候就得到了溫度和濕度的數(shù)據(jù)。
這個時候每次都要計算校驗碼,不太方便,一些朋友手頭上可能沒有溫濕度傳感器,也沒有USB轉485的設備或者轉換器,可以用工具來模擬,可以用作為從機來模擬一下,用它作為主機如何去讀取溫濕度傳感器的數(shù)據(jù),首先把串口槍給它關掉,然后先連接一下打開串口COM5,然后900波特率八位數(shù)據(jù)位沒有機構校驗,停止位點擊OK,要讀溫濕度傳感器,但是設備地址是二,從0開始讀寄存器,就是0讀兩個寄存器,然后點擊OK,這個時候它就把溫濕度傳感器讀過來了,讀過來之后可以看到它已經(jīng)把它轉成了十進制來顯示了。
它具體的發(fā)的數(shù)據(jù)是什么?先把它停止,然后把這個數(shù)據(jù)拷貝出來報備,可以對照一下,把發(fā)送的拷貝出來,返回的值實際上也是一樣的,借助工具就很方便,不再需要單獨的去找一個網(wǎng)站去計算CRC校驗碼了,可以借助它來實現(xiàn)相關的操作,當然也可以用它來實現(xiàn)修改地址,它一般就提供兩個功能碼,可以用功能碼去讀寫多個寄存器,可以去讀寫多個寄存器,實際上就是提供兩個功能碼03和06,對一個層級設備來說,要么就是說可以去讀它的數(shù)據(jù),它返回數(shù)據(jù)給我們,要么就是去修改它的一些設置或者一些參數(shù),所以這兩個功能碼一般的產品來說基本上都是足夠了。
對單片機感興趣的可以查看往期分享內容,希望能幫助大家在學習單片機的路上少走一些彎路,想要入門單片機可以持續(xù)關注創(chuàng)為單片機編程,,回復“帶我學習”查看更多內容分享。
審核編輯:湯梓紅
-
單片機
+關注
關注
6043文章
44621瀏覽量
638628 -
寄存器
+關注
關注
31文章
5363瀏覽量
121199 -
設備
+關注
關注
2文章
4546瀏覽量
70863
發(fā)布評論請先 登錄
相關推薦
你知道STM32操作寄存器的方法有哪些嗎
寄存器的名稱和地址的映射詳細資料分析
![<b class='flag-5'>寄存器</b>的名稱和<b class='flag-5'>地址</b>的映射詳細資料分析](https://file.elecfans.com/web1/M00/99/B1/pIYBAF0ZdoKAOvHUAAUieui4tY8692.png)
STM32單片機修改寄存器的位操作方法(全網(wǎng)最全)
![STM32<b class='flag-5'>單片機修改寄存器</b>的位<b class='flag-5'>操作方法</b>(全網(wǎng)最全)](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
芯片與寄存器
![芯片與<b class='flag-5'>寄存器</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
STM32寄存器的簡介、地址查找,與直接操作寄存器
![STM32<b class='flag-5'>寄存器</b>的簡介、<b class='flag-5'>地址</b>查找,與直接<b class='flag-5'>操作</b><b class='flag-5'>寄存器</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
STM32的寄存器操作
![STM32的<b class='flag-5'>寄存器</b><b class='flag-5'>操作</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
修改寄存器默認值的方法
修改寄存器默認值的方法有哪些
![<b class='flag-5'>修改寄存器</b>默認值的<b class='flag-5'>方法</b>有哪些](https://file.elecfans.com/web2/M00/8B/99/poYBAGPXf9SAXvaqAAAzeeBcR9Y202.jpg)
應用筆記|直接修改寄存器來輸出內部時鐘的方法
![應用筆記|直接<b class='flag-5'>修改寄存器</b>來輸出內部時鐘的<b class='flag-5'>方法</b>](https://file1.elecfans.com/web2/M00/8E/60/wKgaomTEzd-AAkjXAAAw52_RPJ0927.png)
評論