衡阳派盒市场营销有限公司

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

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

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

既然ODR能控制管腳高低電平,為什么還需要BSRR寄存器呢?

工程師鄧生 ? 來源:未知 ? 作者:劉芹 ? 2023-10-24 11:49 ? 次閱讀

既然ODR能控制管腳高低電平,為什么還需要BSRR寄存器呢?

為什么需要BSRR寄存器

單片機中,為了控制端口的輸出狀態(tài),我們需要使用特定的寄存器。其中,ODR寄存器負責直接控制端口輸出電平,但是在某些情況下,我們需要更高效、更精準的控制電平狀態(tài),這時就需要使用BSRR寄存器了。

BSRR寄存器全稱Bit Set/Reset Register,中文名稱為位設置/重置寄存器,其作用是能夠快速切換輸入輸出引腳的電平狀態(tài)。通過BSRR寄存器的配置,我們可以簡單、高效地設置或者重置對應的引腳電平,而無需進行其他操作。

BSRR寄存器的結(jié)構(gòu)

BSRR寄存器總共32位,其中前16位是用于設置對應引腳的高電平,后16位是用于設置對應引腳的低電平。

在BSRR寄存器的低16位中,每4位對應一個引腳,以16進制的形式表示。例如:低16位的0號位(LSB)至3號位分別對應的引腳號為0~3,以此類推。對于高16位,它們與低16位的區(qū)別在于,它們控制對應引腳的低電平狀態(tài),即為清零操作。

例如,如果要使引腳1變?yōu)楦唠娖?,那么我們可以給BSRR寄存器的第17位(低16位的1號位)寫入1,這將會把引腳1設置為高電平。如果想要將引腳1的電平設置為低電平,我們只需要給BSRR寄存器的第33位(高16位的1號位)寫入1,即可實現(xiàn)。

BSRR寄存器與ODR寄存器的區(qū)別

雖然ODR和BSRR都可以控制引腳的電平狀態(tài),但是它們在實現(xiàn)上還是有一些區(qū)別的。

首先,ODR寄存器的寫入操作是瞬時的,即寫入后立即生效。而BSRR寄存器的寫入操作是有延遲的,需要在CPU時鐘上升沿時才能夠生效,因此,如果需要精準地控制電平狀態(tài),我們需要根據(jù)CPU主頻等因素,精確地計算出延遲時間。

其次,在使用BSRR寄存器時,我們可以直接通過對應電平位的寫入操作,來實現(xiàn)針對某一位的設置或重置操作。這樣,在高頻率操作時,會比使用ODR寄存器更具有優(yōu)勢,不僅可以提高效率,還能保證電平狀態(tài)的準確性。

還有一個重要區(qū)別是,在使用BSRR寄存器時,如果想要對某個引腳進行設置或重置,我們只需要對對應的位進行操作即可,而使用ODR寄存器時,我們需要同時對所有引腳進行設置或重置,這樣會導致效率降低。

綜上所述,BSRR寄存器與ODR寄存器相比,更加靈活高效,能夠更好地滿足實際需求,特別是在高頻率控制電平情況下更為顯著。

結(jié)語

在單片機的開發(fā)中,對端口的輸入輸出狀態(tài)控制是一項非?;A的操作,因此理解和掌握相關的寄存器是非常重要的。在實際應用中,根據(jù)不同的場景需求,選擇合適的寄存器會使我們的開發(fā)更加方便、高效。

BSRR寄存器雖然只是一個小小的寄存器,但是在高頻率作業(yè)中,能夠發(fā)揮出強大的功能和優(yōu)勢。因此,對于端口輸出狀態(tài)的控制需求得到了更好的滿足。

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

    關注

    31

    文章

    5363

    瀏覽量

    121151
  • odr
    odr
    +關注

    關注

    0

    文章

    5

    瀏覽量

    3581
  • bsrr
    +關注

    關注

    0

    文章

    2

    瀏覽量

    1274
收藏 人收藏

    評論

    相關推薦

    DAC7565 SYNC這個IO腳在常態(tài)應該置為低電平還是高電平?

    手冊中關于SYNC的描述是:SYNC低電平時使輸入移位寄存器,SYNC需要保持低電平到接收玩24個SCLK周期才能更新DA輸出,如果沒到
    發(fā)表于 02-05 09:31

    DAC5681z從FPGA讀數(shù)據(jù),為什么還需要一個DCLKP/N

    以DAC5681z為例,DAC芯片從FPGA讀數(shù)據(jù),然后按照自己的采樣速率CLKIN/CLKINC 每隔16bit轉(zhuǎn)換成1個電平值,為什么還需要一個DCLKP/N
    發(fā)表于 12-11 07:52

    ADS8678是否可以把CS直接拉低或者拉高,SDI保持低電平,使得ADC一直保持在STDBY模式?

    請問在使用ADS8678這款ADC的時候,向寄存器中寫入8200h之后ADC進入STDBY模式,后續(xù)情況下SDI保持低電平就可以保持在STDBY模式,在保持低電平的時候,CS信號是否還需要
    發(fā)表于 11-29 08:30

    ADS62P49降低采樣率,使用50M采樣,除了“enable low speed mode”的寄存器,還需要更改其他的設置嗎?

    配置,輸出時鐘的頻率是50MHz。 也改了ads62p49的“enable low speed mode”的寄存器,但是各種測試模式、正弦波出現(xiàn)的波形一直不對。 想問下還需更改哪些ads62p49的配置。除了“enable low speed mode”的
    發(fā)表于 11-18 07:04

    當LMK00725的輸入為LVPECL電平時,由于芯片輸入管腳內(nèi)部存在51KOhm上下拉,在芯片外部是否還需要增加上下拉偏置電阻

    請教一個問題,當LMK00725的輸入為LVPECL電平時,由于芯片輸入管腳內(nèi)部存在51KOhm上下拉,那在芯片外部是否還需要增加上下拉偏置電阻? 我目前參考的是手冊中的典型應用
    發(fā)表于 11-11 07:07

    接口的控制與狀態(tài)寄存器什么作用

    的行為并獲取硬件的狀態(tài)信息。 接口的控制與狀態(tài)寄存器的作用 在現(xiàn)代計算機系統(tǒng)中,硬件設備與軟件之間的交互是通過一系列的接口來實現(xiàn)的。這些接口不僅需要能夠傳輸數(shù)據(jù),還需要能夠
    的頭像 發(fā)表于 10-17 10:42 ?599次閱讀

    請問tlv320dac3100設成喇叭輸出時,應該怎樣配置寄存器

    請問tlv320dac3100設成喇叭輸出時,應該怎樣配置寄存器? 我們按照datasheet中的example配置,spk有方波輸出,但是沒有音頻數(shù)據(jù),只有pop聲。請問還需要修改哪些參數(shù)
    發(fā)表于 10-15 08:04

    寄存器是什么意思?寄存器是如何構(gòu)成的?

    在計算機科學中,寄存器(Register)是一個高速存儲單元,它位于中央處理(CPU)內(nèi)部,用于存儲計算機程序執(zhí)行過程中所需要的數(shù)據(jù)、指令地址或狀態(tài)信息。寄存器是計算機體系結(jié)構(gòu)中至關
    的頭像 發(fā)表于 08-02 18:23 ?4833次閱讀
    <b class='flag-5'>寄存器</b>是什么意思?<b class='flag-5'>寄存器</b>是如何構(gòu)成的?

    寄存器分為基本寄存器和什么兩種

    寄存器是計算機中用于存儲數(shù)據(jù)的高速存儲單元,它們是CPU內(nèi)部的重要組成部分。寄存器可以分為基本寄存器和擴展寄存器兩種類型。 一、基本寄存器
    的頭像 發(fā)表于 07-12 10:31 ?1616次閱讀

    ESP32可以直接寫入RX的高低電平,和直接讀取TX的高低電平嗎?

    如果串口的rx和tx的高低電平都是通過代碼得到的狀態(tài),想把這個高低電平的變化解析成串口數(shù)據(jù)流,在不占用IO的情況下能否解析出數(shù)據(jù)? 也就是在includesocuart_struct.h這個寄存器
    發(fā)表于 06-07 08:20

    請求修正電路,當輸入高低電平轉(zhuǎn)換時,輸出一秒低電平

    本帖最后由 du26548 于 2024-5-27 14:08 編輯 需求: INPUT高低電平轉(zhuǎn)換時,OUT輸出一秒低電平,其余時間為高阻態(tài)。 問題:D觸發(fā)正常,555正常,高低電平
    發(fā)表于 05-27 13:11

    stm32的高低電平是怎么算的?

    請問下關于stm32的輸入高低電平。 1.32輸入多少算高,多少算低?是不是2v以上算高,0.8v一下算低;51是不是3.6和1.7為分界。 謝謝大家的回復
    發(fā)表于 05-16 06:27

    干貨滿滿:ARM的內(nèi)核寄存器講解

    內(nèi)核寄存器與外設寄存器: 內(nèi)核寄存器與外設寄存器是完全不同的概念。內(nèi)核寄存器是指 CPU 內(nèi)部的寄存器
    發(fā)表于 04-17 11:47 ?4275次閱讀
    干貨滿滿:ARM的內(nèi)核<b class='flag-5'>寄存器</b>講解

    STM32的IO口初始化為輸入浮空,那管腳是高電平還是低電平?

    STM32的IO口初始化為輸入浮空,那管腳是高電平還是低電平?
    發(fā)表于 04-07 07:12

    AD7321的數(shù)據(jù)轉(zhuǎn)換輸出一直是高電平,不工作是為什么?

    AD7321的數(shù)據(jù)轉(zhuǎn)換輸出一直是高電平,前四位正常輸出(通道0和通道1轉(zhuǎn)換能在前四位體現(xiàn)出來),后12位數(shù)據(jù)位全是高電平,讓AD7321工作只需要先寫范圍
    發(fā)表于 02-26 06:34
    百家乐官网公式论坛| 新丰县| 百家乐官网怎么看单| 澳门百家乐官网网上| 百家乐在线怎么玩| 乐天堂百家乐官网娱乐场| 在线百家乐娱乐| 威尼斯人娱乐注册| 宁明县| 百家乐官网人生信条漫谈| 海立方百家乐赢钱| 大发888洗码| 百家乐官网桌子豪华| 网上百家乐大赢家| 千亿娱乐网| 郑州百家乐官网的玩法技巧和规则 | 足球百家乐官网投注计算| 百家乐官网乐赌| 五星百家乐的玩法技巧和规则 | 百家乐官网境外赌博| 崇阳县| 百家乐官网免费体验金| 百家乐开户过的路纸| 文山县| 星期八百家乐官网的玩法技巧和规则 | 大发888在线扑| 太阳城百家乐官网主页| 百家乐免费路单| 大发888加盟合作| 百家乐官网娱乐城介绍| 12倍百家乐秘籍| 顶级赌场官方| 百家乐官网庄家必赢诀窍| 金榜百家乐娱乐城| 尊龙娱乐网| 百利宫百家乐官网的玩法技巧和规则 | 在线真钱游戏| 免费百家乐规律| 德州扑克保险| 百家乐官网防伪筹码套装| 百家乐桌面|