0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

單片機修改寄存器地址的操作方法

華維單片機林北 ? 來源:華維單片機林北 ? 作者:華維單片機林北 ? 2022-04-13 08:08 ? 次閱讀

C語言小學(xué)生都能學(xué)會,你還說單片機很難,難道你連小學(xué)生都不如嗎

我是很認真的,沒有在跟你吹水,前段時間有鄰居知道我是攻城獅,閑聊的時候想讓我?guī)呐畠簩W(xué)習(xí)單片機,當(dāng)時我就拒絕了,因為在我的認知范圍里這個年紀(jì)的小朋友很難學(xué)的會,而且女孩子家家學(xué)做什么攻城獅,心中一百個白眼翻上天,后來她說她女兒之前學(xué)了C++,有點基礎(chǔ),當(dāng)時我就愣住了,現(xiàn)在的小學(xué)生都那么牛X的嗎。不過最后我還是讓她回去慎重考慮一下,畢竟我這里培訓(xùn)的定位是那些學(xué)習(xí)完之后想找到工作的,我們課程也是以項目驅(qū)動去學(xué)習(xí),年紀(jì)這么小的學(xué)生學(xué)校里的科目課程就已經(jīng)眼花繚亂了,還是留一點童年給人家吧。

關(guān)于單片機要想修改它的設(shè)備地址寄存器地址,可以用后面的指令去修改,比如說要想改地址,可以用0106這個功能去修改它,比如說想改成02,就可以去按照它這個方式來去修改一下,比如說一個產(chǎn)品,從需要用兩個點的溫濕度傳感器,這個時候就用兩個,不可能讓它兩個都是用同一個地址,所以要改,比如買了一個產(chǎn)品,它默認的是01,要把它地址改成02,用00這個功能碼修改,它是寫單個寄存器,01可以是06,然后要更改這個設(shè)備地址,設(shè)備地址寄存器地址是0066,所以要是0066,接下來要改地址,要改的地址要給它個數(shù)據(jù)。

單片機修改寄存器地址的操作方法

比如說要改成02,最后是校驗,這個時候給它發(fā)這個指令,它就會把這個地址改成02,點擊發(fā)送,對于一個正確的命令幀它會響應(yīng),手冊當(dāng)中也會指出來它要說什么,它會響應(yīng)修改后的設(shè)備地址02,然后功能碼00,接著是寄存器地址0066,最后是目標(biāo)地址,修改的這個目標(biāo)地址0002這個時候就修改好了,接下來如果說還用原來的這個地址去讀它,肯定就讀不出來了,可以試一下,再用01,03,然后用0000,然后0002,這個時候再去讀它的時候它就沒有響應(yīng)。

單片機修改寄存器地址的操作方法

它沒有響應(yīng),原因是什么?因為這個設(shè)備它的地址已經(jīng)不符了,發(fā)給它01的時候,它的設(shè)備地址是02,它第一次比較這個地址的時候,它就知道不是發(fā)給它的,所以它后面的數(shù)據(jù)是不會去解析處理,它就不會給你返回數(shù)據(jù),它只有對于正確的應(yīng)詢問詢真它才會給出響應(yīng),要用0二,CRC校驗也要正確,然后功能碼03,然后連著讀兩個寄存器,從00這個寄存器開始讀,還是讀的溫度和濕度,這個地址對于這個位尋幀,它的交易碼可以通過工具,可以用這個來計算一下獲取,給出了具體的一個響應(yīng),功能碼返回字節(jié)數(shù),后面是校驗,這時候就得到了溫度和濕度的數(shù)據(jù)。

這個時候每次都要計算校驗碼,不太方便,一些朋友手頭上可能沒有溫濕度傳感器,也沒有USB轉(zhuǎn)485的設(shè)備或者轉(zhuǎn)換器,可以用工具來模擬,可以用作為從機來模擬一下,用它作為主機如何去讀取溫濕度傳感器的數(shù)據(jù),首先把串口槍給它關(guān)掉,然后先連接一下打開串口COM5,然后900波特率八位數(shù)據(jù)位沒有機構(gòu)校驗,停止位點擊OK,要讀溫濕度傳感器,但是設(shè)備地址是二,從0開始讀寄存器,就是0讀兩個寄存器,然后點擊OK,這個時候它就把溫濕度傳感器讀過來了,讀過來之后可以看到它已經(jīng)把它轉(zhuǎn)成了十進制來顯示了。

單片機修改寄存器地址的操作方法

它具體的發(fā)的數(shù)據(jù)是什么?先把它停止,然后把這個數(shù)據(jù)拷貝出來報備,可以對照一下,把發(fā)送的拷貝出來,返回的值實際上也是一樣的,借助工具就很方便,不再需要單獨的去找一個網(wǎng)站去計算CRC校驗碼了,可以借助它來實現(xiàn)相關(guān)的操作,當(dāng)然也可以用它來實現(xiàn)修改地址,它一般就提供兩個功能碼,可以用功能碼去讀寫多個寄存器,可以去讀寫多個寄存器,實際上就是提供兩個功能碼03和06,對一個層級設(shè)備來說,要么就是說可以去讀它的數(shù)據(jù),它返回數(shù)據(jù)給我們,要么就是去修改它的一些設(shè)置或者一些參數(shù),所以這兩個功能碼一般的產(chǎn)品來說基本上都是足夠了。

對單片機感興趣的可以查看往期分享內(nèi)容,希望能幫助大家在學(xué)習(xí)單片機的路上少走一些彎路,想要入門單片機可以持續(xù)關(guān)注創(chuàng)為單片機編程,,回復(fù)“帶我學(xué)習(xí)”查看更多內(nèi)容分享。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機
    +關(guān)注

    關(guān)注

    6037

    文章

    44558

    瀏覽量

    635400
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5343

    瀏覽量

    120385
  • 設(shè)備
    +關(guān)注

    關(guān)注

    2

    文章

    4509

    瀏覽量

    70645
收藏 人收藏

    評論

    相關(guān)推薦

    你知道STM32操作寄存器方法有哪些嗎

    STM32的寄存器操作在使用STM32單片機編程時一般都用ST給的庫函數(shù)編程,庫函數(shù)編程的底層就是對單片機寄存器
    發(fā)表于 02-28 07:13

    寄存器操作方法的經(jīng)驗和其總結(jié)

    不同的位進行先后順序不同的設(shè)置,因為這樣可能達不到預(yù)期的效果,這個不太好總結(jié),但是對寄存器操作方法是固定的。
    的頭像 發(fā)表于 12-19 09:30 ?8760次閱讀
    對<b class='flag-5'>寄存器</b><b class='flag-5'>操作方法</b>的經(jīng)驗和其總結(jié)

    寄存器操作方法_對寄存器操作的通用方法總結(jié)

    本文主要詳解寄存器操作方法以及對寄存器操作的通用方法總結(jié),具體的跟隨小編來了解一下。
    的頭像 發(fā)表于 05-22 15:53 ?2.3w次閱讀

    寄存器的名稱和地址的映射詳細資料分析

    本文檔的主要內(nèi)容詳細介紹的是寄存器的名稱和地址的映射詳細資料分析。首先要清楚的一點,所有操作,最終目的都是操作寄存器一,對比51
    發(fā)表于 07-01 17:42 ?1次下載
    <b class='flag-5'>寄存器</b>的名稱和<b class='flag-5'>地址</b>的映射詳細資料分析

    如何進行寄存器名稱和地址的映射分析

    首先要清楚的一點,所有操作,最終目的都是操作寄存器一,對比51單片機和STM32對寄存器操作
    發(fā)表于 06-21 17:43 ?2次下載
    如何進行<b class='flag-5'>寄存器</b>名稱和<b class='flag-5'>地址</b>的映射分析

    STM32單片機修改寄存器的位操作方法(全網(wǎng)最全)

    使用 C語言對寄存器賦值時,我們常常要求只修改寄存器的某幾位的值,且其它的寄存器位不變,這個時候我們就需要用到 C 語言的位操作方法了。1
    發(fā)表于 11-19 09:06 ?33次下載
    STM32<b class='flag-5'>單片機修改寄存器</b>的位<b class='flag-5'>操作方法</b>(全網(wǎng)最全)

    芯片與寄存器

    芯片與寄存器作為一個嵌入式開發(fā)人員,從接觸第一塊單片機的時候,就一定會聽到一個此,叫做寄存器單片機的很多功能都是通過配置修改寄存器來實現(xiàn)的
    發(fā)表于 11-23 16:21 ?50次下載
    芯片與<b class='flag-5'>寄存器</b>

    32單片機 C語言 寄存器(四)

    32單片機C語言相關(guān)知識以及寄存器地址名稱映射分析
    發(fā)表于 11-29 10:06 ?12次下載
    32<b class='flag-5'>單片機</b> C語言 <b class='flag-5'>寄存器</b>(四)

    STM32寄存器的簡介、地址查找,與直接操作寄存器

    什么是寄存器提到單片機,就不得不提到寄存器。根據(jù)百度百科介紹,寄存器是中央處理內(nèi)的組成部分。寄存器
    發(fā)表于 11-30 13:51 ?12次下載
    STM32<b class='flag-5'>寄存器</b>的簡介、<b class='flag-5'>地址</b>查找,與直接<b class='flag-5'>操作</b><b class='flag-5'>寄存器</b>

    STM32的寄存器操作

    STM32的寄存器操作在使用STM32單片機編程時一般都用ST給的庫函數(shù)編程,庫函數(shù)編程的底層就是對單片機寄存器
    發(fā)表于 01-13 15:43 ?19次下載
    STM32的<b class='flag-5'>寄存器</b><b class='flag-5'>操作</b>

    修改寄存器默認值的方法

    寄存器默認值,也叫復(fù)位值,是當(dāng)reset或者set有效時寄存器輸出的值。對于一個DFF來說,如下圖,當(dāng)reset為0時,Q輸出0;當(dāng)set為0時,Q輸出為1(外部使用時保證reset與set不同時為0)。
    的頭像 發(fā)表于 09-28 14:13 ?1453次閱讀

    修改寄存器默認值的方法有哪些

    寄存器默認值,也叫復(fù)位值,是當(dāng)reset或者set有效時寄存器輸出的值。對于一個DFF來說,如下圖,當(dāng)reset為0時,Q輸出0;當(dāng)set為0時,Q輸出為1(外部使用時保證reset與set不同時為0)。
    的頭像 發(fā)表于 01-30 16:30 ?2376次閱讀
    <b class='flag-5'>修改寄存器</b>默認值的<b class='flag-5'>方法</b>有哪些

    單片機工作寄存器作用 單片機常用專用寄存器

    除了通用寄存器(如累加、通用寄存器等),單片機中還會有特定功能的寄存器,如定時
    的頭像 發(fā)表于 04-08 14:46 ?7589次閱讀

    應(yīng)用筆記|直接修改寄存器來輸出內(nèi)部時鐘的方法

    關(guān)鍵字:MCO,手動修改寄存器 目錄預(yù)覽 1 在特殊情況下使能 MCO 功能的方法 2 具體實現(xiàn) 3 總結(jié) 1. 在特殊情況下使能 MCO 功能的方法 在對某些不容易復(fù)現(xiàn)的問題進行代碼調(diào)時,需要觀察
    的頭像 發(fā)表于 06-13 17:35 ?925次閱讀
    應(yīng)用筆記|直接<b class='flag-5'>修改寄存器</b>來輸出內(nèi)部時鐘的<b class='flag-5'>方法</b>

    直接修改寄存器來輸出內(nèi)部時鐘的方法

    電子發(fā)燒友網(wǎng)站提供《直接修改寄存器來輸出內(nèi)部時鐘的方法.pdf》資料免費下載
    發(fā)表于 09-19 15:43 ?0次下載
    直接<b class='flag-5'>修改寄存器</b>來輸出內(nèi)部時鐘的<b class='flag-5'>方法</b>