99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

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

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

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

工程師鄧生 ? 來源:未知 ? 作者:劉芹 ? 2023-10-24 11:49 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

為什么需要BSRR寄存器

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

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

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

BSRR寄存器總共32位,其中前16位是用于設(shè)置對(duì)應(yīng)引腳的高電平,后16位是用于設(shè)置對(duì)應(yīng)引腳的低電平。

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

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

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

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

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

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

還有一個(gè)重要區(qū)別是,在使用BSRR寄存器時(shí),如果想要對(duì)某個(gè)引腳進(jìn)行設(shè)置或重置,我們只需要對(duì)對(duì)應(yīng)的位進(jìn)行操作即可,而使用ODR寄存器時(shí),我們需要同時(shí)對(duì)所有引腳進(jìn)行設(shè)置或重置,這樣會(huì)導(dǎo)致效率降低。

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

結(jié)語

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

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

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

    關(guān)注

    31

    文章

    5433

    瀏覽量

    124410
  • odr
    odr
    +關(guān)注

    關(guān)注

    0

    文章

    5

    瀏覽量

    3687
  • bsrr
    +關(guān)注

    關(guān)注

    0

    文章

    2

    瀏覽量

    1344
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    請(qǐng)問L9663 Transceiver使用Direct Interface(SYNCx&DOUTx)模式時(shí)還需要通過SPI對(duì)其寄存器進(jìn)行配置嗎?

    L9663 Transceiver使用Direct Interface(SYNCx&DOUTx)模式時(shí)還需要通過SPI對(duì)其寄存器進(jìn)行配置嗎?
    發(fā)表于 03-13 07:38

    ADS1298如果使用寄存器命令RESET去復(fù)位,那么其RESET管腳是接高電平還是低電平,還是懸空?

    我想問一下ADS1298如果使用寄存器命令RESET去復(fù)位,那么其RESET管腳是接高電平還是低電平,還是懸空
    發(fā)表于 02-10 06:00

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

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

    想用一個(gè)控制器來直接對(duì)TSB81BA3E的寄存器進(jìn)行讀寫,怎么實(shí)現(xiàn)?

    大家好!我現(xiàn)在在使用TSB81BA3E 這個(gè)1394物理層芯片,我現(xiàn)在想用一個(gè)控制器來直接對(duì)這個(gè)芯片的寄存器進(jìn)行讀寫(不通過鏈路層)!請(qǐng)問我應(yīng)該使用芯片的哪些引腳?控制器選FPGA可以嘛?
    發(fā)表于 12-17 07:08

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

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

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

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

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

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

    ADS9234R復(fù)位、寄存器如何配置?

    請(qǐng)問一下,我用MCU正常配置這款芯片,我是先用復(fù)位引腳通過MCU輸出低電平拉低進(jìn)行復(fù)位,還是先掉電后上電,再配置寄存器?還有一個(gè)問題就是,我寫入寄存器,每寫入一個(gè)命令是否會(huì)有什么數(shù)
    發(fā)表于 11-14 06:59

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

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

    lmk04828正常工作的情況下RESET/GPO管腳是為高電平還是低電平

    我們目前使用的lmk04828芯片,芯片在正常工作的情況下RESET/GPO管腳是高電平還是低電平? 我們外部是否需要對(duì)此RESET/GPO管腳
    發(fā)表于 11-08 07:20

    使用TAS5711時(shí),都是會(huì)遇到寄存器代碼有誤問題,為什么?

    問題有哪些注意的事項(xiàng)? 2.能否提供 2.1 & 2.0 &BTL& PBTL 模式 的 實(shí)際案例(軟件代碼) 3.TAS5711 GUI 軟件 導(dǎo)出代碼 到植入MCU,哪些寄存器還需要手動(dòng)修?哪些寄存器
    發(fā)表于 10-18 07:52

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

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

    請(qǐng)問tlv320dac3100設(shè)成喇叭輸出時(shí),應(yīng)該怎樣配置寄存器?

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

    寄存器的類型和作用

    在計(jì)算機(jī)科學(xué)中,寄存器(Register)是一種高速存儲(chǔ)單元,它位于CPU內(nèi)部,與CPU的運(yùn)算單元和邏輯控制單元緊密相連。寄存器的主要作用是暫時(shí)存儲(chǔ)指令、操作數(shù)和地址等臨時(shí)數(shù)據(jù),以便CPU快速訪問和處理。由于
    的頭像 發(fā)表于 09-05 14:11 ?4755次閱讀

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

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