在學習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底層實際是先定義出外設基位址,然...