關於STM32 GPIO的BSRR和BRR暫存器

2021-08-06 04:30:12 字數 971 閱讀 8885

首先,

typedef struct

gpio_typedef;

bsrr和brr暫存器是32位的。

比較:1)置gpioa->bsrr低16位的某位為'1',則對應的i/o埠管腳置'1';

置gpioa->bsrr低16位的某位為'0',則對應的i/o埠管腳保持不變。

2)置gpioa->bsrr高16位的某位為'1',則對應的i/o埠管腳置'0';

置gpioa->bsrr高16位的某位為'0',則對應的i/o埠管腳保持不變。 

3)置gpioa->brr低16位的某位為'1',則對應的i/o埠管腳置'0';

置gpioa->brr低16位的某位為'0',則對應的i/o埠管腳保持不變。

例如:1)要設定埠a的d0、d5、d10、d11為高,而保持其它i/o口不變,則

gpioa->bsrr = 0x0c21(0000 1100 0010 0001);

反過頭來再好好消化上述第1條特徵!!!

2)要設定埠a的d1、d3、d14、d15為低,而保持其它i/o口不變,則

gpioa->brr = 0xc00a;

假設有16位data需要寫入高8位的資料,則

gpio_setbits(gpioa, data & 0xff00); 

gpio_resetbits(gpioa, (~data & 0xff00)); 

也可以直接操作這兩個暫存器: 

gpioa->bsrr = data & 0xff00; 

gpioa->brr = ~data & 0xff00;

STM32GPIO部分介紹

最近在老師交給了乙個專案,需要用到stm32微控制器,這裡就在學習的過程中所注意到的一些地方或細節部分記錄了下來,筆者所使用的是stm32f407zgt6晶元 探索者 檢視晶元的資料手冊 這個 對每個i o口的功能進行了很詳細的介紹。每個i o除了作為i o使用外,還可以作為其他的復用。已以pe2口...

STM32 GPIO模式總結

4種輸入模式 浮空輸入 上拉輸入 下拉輸入 模擬輸入 4種輸出模式 開漏輸出 復用開漏輸出 推挽輸出 復用推挽輸出 3種最大輸出速度 2mhz 10mhz 50mhz 浮空輸入模式 1 外部通過io口輸入電平,外部電平通過上下拉部分 浮空模式下都關閉,既無 上拉也無下拉電阻 2 傳輸到施密特觸發器 ...

STM32 GPIO簡單介紹

2018 3 28 stm32 1.簡單配置暫存器環境 2.ministm32f103rc 51個io口 1.擁有著4組io口 gpioa0 a15 gpiob0 b15 gpioc0 c15 gpiod0 d2 2.gpio的工作方式 四種輸入模式,四種輸出模式 輸入方式 1.輸入浮空模式 由引腳...