當按鍵外接電源,按下按鍵io輸出為高電平時,此時需要設定未按下時為低電平,所以需要配置成下拉輸入
當按鍵外接電源,按下按鍵io輸出為低電平時,此時需要設定未按下時為高電平,所以需要配置成上拉輸入
推挽輸出既能輸出高電平也能輸出低電平。
什麼叫埠復用?
io口既可以用作通用輸入輸出高低電平,也可以通過配置相應引腳作為其他功能使用,
如00時通用io口,01時定時器通道輸出,11時串列埠通訊等。
作用:最大限度利用埠資源。
什麼是埠重對映?
就是把某些功能引腳對映到其他引腳。
如pa9,pa10的串列埠功能可以對映到pb6,pb7上面,即可以通過配置引腳使pb6,pb7具有串列埠功能。
作用:佈線方便
每組gpiox有16個io口pa0-pa15,配置乙個io口需要4位,則每組需要64位,則需要2個32位暫存器來配置。
如埠配置低暫存器gpiox_crl和高暫存器gpiox_crh,每個暫存器有32個位,其中每四個位控制乙個io口,
crl控制0-7,crh控制8-15的io口。下面乙個格代表兩位,共32位。
所有io口都可以作為中斷輸入。
用韌體庫點亮led的過程(以pb0為例)
1.定義乙個gpio結構體(gpio_inittypedef)型別的變數
gpio_inittypedef gpio_initstructure;
2.開啟gpio的時鐘
rcc_apb2periphclockcmd(rcc_apb2periph_gpiob, enable);
3.將gpio結構體變數的成員進行賦值:埠、模式、翻轉速度(定義的內容位於gpio.**件)
gpiob_pin0.gpio_pin = gpio_pin_0;
gpiob_pin0.gpio_mode = gpio_mode_out_pp;
gpiob_pin0.gpio_speed = gpio_speed_50mhz;
4.gpio初始化
gpio_init(gpiob, &gpio_initstructure);
5.將相應的引腳置高、置低
gpio_resetbits(gpiob, gpio_pin_0);
gpio_setbits(gpiob, gpio_pin_0);
STM32的GPIO內部結構及相關暫存器
學完大二上學期51微控制器課程的寒假,在家我就開始搗鼓stm32了,記得那時候接觸stm32感覺它很難,20多天下來就學習了rcc時鐘體系和gpio控制模組,開學後又開始忙一些有的沒的,stm32的學習也擱置了,以至於後來跟學校當時在念博的老師交流時,我是這樣描述我的stm32開發水平的 我只會用g...
STM32的GPIO內部結構及相關暫存器
學完大二上學期51微控制器課程的寒假,在家我就開始搗鼓stm32了,記得那時候接觸stm32感覺它很難,20多天下來就學習了rcc時鐘體系和gpio控制模組,開學後又開始忙一些有的沒的,stm32的學習也擱置了,以至於後來跟學校當時在念博的老師交流時,我是這樣描述我的stm32開發水平的 我只會用g...
ios 類的內部結構
1.class 和 object 的定義 an opaque type that represents an objective c class.typedefstructobjc class class represents an instance of a class.structobjc ob...