既然ODR能控制管腳高低電平,為什么還需要BSRR寄存器呢?
為什么需要BSRR寄存器
在單片機中,為了控制端口的輸出狀態,我們需要使用特定的寄存器。其中,ODR寄存器負責直接控制端口輸出電平,但是在某些情況下,我們需要更高效、更精準的控制電平狀態,這時就需要使用BSRR寄存器了。
BSRR寄存器全稱Bit Set/Reset Register,中文名稱為位設置/重置寄存器,其作用是能夠快速切換輸入輸出引腳的電平狀態。通過BSRR寄存器的配置,我們可以簡單、高效地設置或者重置對應的引腳電平,而無需進行其他操作。
BSRR寄存器的結構
BSRR寄存器總共32位,其中前16位是用于設置對應引腳的高電平,后16位是用于設置對應引腳的低電平。
在BSRR寄存器的低16位中,每4位對應一個引腳,以16進制的形式表示。例如:低16位的0號位(LSB)至3號位分別對應的引腳號為0~3,以此類推。對于高16位,它們與低16位的區別在于,它們控制對應引腳的低電平狀態,即為清零操作。
例如,如果要使引腳1變為高電平,那么我們可以給BSRR寄存器的第17位(低16位的1號位)寫入1,這將會把引腳1設置為高電平。如果想要將引腳1的電平設置為低電平,我們只需要給BSRR寄存器的第33位(高16位的1號位)寫入1,即可實現。
BSRR寄存器與ODR寄存器的區別
雖然ODR和BSRR都可以控制引腳的電平狀態,但是它們在實現上還是有一些區別的。
首先,ODR寄存器的寫入操作是瞬時的,即寫入后立即生效。而BSRR寄存器的寫入操作是有延遲的,需要在CPU時鐘上升沿時才能夠生效,因此,如果需要精準地控制電平狀態,我們需要根據CPU主頻等因素,精確地計算出延遲時間。
其次,在使用BSRR寄存器時,我們可以直接通過對應電平位的寫入操作,來實現針對某一位的設置或重置操作。這樣,在高頻率操作時,會比使用ODR寄存器更具有優勢,不僅可以提高效率,還能保證電平狀態的準確性。
還有一個重要區別是,在使用BSRR寄存器時,如果想要對某個引腳進行設置或重置,我們只需要對對應的位進行操作即可,而使用ODR寄存器時,我們需要同時對所有引腳進行設置或重置,這樣會導致效率降低。
綜上所述,BSRR寄存器與ODR寄存器相比,更加靈活高效,能夠更好地滿足實際需求,特別是在高頻率控制電平情況下更為顯著。
結語
在單片機的開發中,對端口的輸入輸出狀態控制是一項非常基礎的操作,因此理解和掌握相關的寄存器是非常重要的。在實際應用中,根據不同的場景需求,選擇合適的寄存器會使我們的開發更加方便、高效。
BSRR寄存器雖然只是一個小小的寄存器,但是在高頻率作業中,能夠發揮出強大的功能和優勢。因此,對于端口輸出狀態的控制需求得到了更好的滿足。
-
寄存器
+關注
關注
31文章
5612瀏覽量
130223 -
odr
+關注
關注
0文章
6瀏覽量
3796 -
bsrr
+關注
關注
0文章
2瀏覽量
1408
發布評論請先 登錄
使用位操作精準配置單片機寄存器
請問riscv中斷還需要軟件保存上下文和恢復嗎?
?SN74LVC595A 8位移位寄存器技術文檔總結
SN74HCT165 8位并行輸入移位寄存器技術解析
?SN74HCT595 8位移位寄存器技術解析與應用指南
SN74LV595B-EP低噪聲8位移位寄存器技術解析與應用指南
Texas Instruments SN74AHC164/SN74AHC164-Q1 8位移位寄存器數據手冊
Texas Instruments SN74AHCT164/SN74AHCT164-Q1 8位移位寄存器特性/應用/框圖
Texas Instruments SN74LV8T164/SN74LV8T164-Q1移位寄存器數據手冊
Texas Instruments SN74AC164-Q1 8位SIPO移位寄存器數據手冊
Texas Instruments SN74ACT164-Q1 8位SIPO移位寄存器數據手冊
第四章 什么是寄存器
既然ODR能控制管腳高低電平,為什么還需要BSRR寄存器呢?
評論