STM32學習 暫存器操作埠模式

2021-09-01 23:39:30 字數 602 閱讀 4030

在學習iic的時候碰到了這麼兩條**

//io方向設定

#define mpu_sda_in()

#define mpu_sda_out()

這其實是在操作暫存器

首先了解下各個符號的用處

這是原子哥的解釋。

crh crl是兩個控制埠暫存器

比如gpioa

a0-a7操作的是crl暫存器

a8-a15操作的是crh暫存器

例項:1.上圖是b7,所以我們操作的是crl。

2.gpiob->crl&=0x0fffffff;這句話的意思是將b7的四位清零。

3.gpiob->crl|=(u32)8<<28; 這句話的意思是設定b7的四位的值。

所以要該引腳的話,只需要注意

1.是crl還是crh

2.清零的引腳是否正確

3.是否正確設定了你改的那個腳的值

STM32埠相關暫存器

在做專案的時候,有事要臨時的改變埠的輸入輸出或者其他狀態,這個時候如果用庫操作顯得繁瑣,量大,如果直接操作暫存器,則簡單快捷乾淨。stm32暫存器如下 埠模式暫存器 gpiox moder 每io口兩位 1 modery 1 0 y 0 15 2 00 輸入 復位狀態 3 01 通用輸出模式 4 1...

STM32蜂鳴器 暫存器

這次實驗犯了個笑話,竟然在巨集定義後面加分號.就像這樣 define 大家千萬不要學我,結果報錯expected expression,還苦惱半天,想為啥操作不了暫存器了?我真愚蠢!剛開始我也不會寫這些東西,其實摸清套路就好,rcc時鐘使能 gpio初始化 相關暫存器初始化 延時函式 串列埠等初始化...

STM32暫存器對映

1.對映即將記憶體的某段位址與某一暫存器對應,微控制器對函式的操作底層是操作暫存器,而暫存器最終是操作記憶體上對應的單元,2.各個暫存器對應的位址都是在st定義的起始位址上層層偏移得到 3.想要實現某功能可直接對此段記憶體寫進相應的值,即可賦予某一功能 4.stm32底層實際是先定義出外設基位址,然...