STM32
- 一STM32F1 GPIO作業原理
- 二撰寫跑馬燈實驗——庫函式
一STM32F1 GPIO作業原理
二撰寫跑馬燈實驗——庫函式
一、STM32F1 GPIO作業原理
1、 mini一共有四組IO口
GPIOA (PA0-PA15)
GPIOB (PB0-PB15)
GPIOC (PC0-PC15)
GPIOD (PD0-PD2)
一共有51個IO口
2、輸入模式
輸入浮空模式:上下拉電阻斷開
輸入上拉模式:上拉電阻連接
輸入下拉模式: 下拉電阻連接
模擬模式: 上下拉電阻斷開
3、輸出作業模式
開漏輸出模式:→1→輸出控制電路→N-MOS關閉→IO口輸出的電壓與上(下)拉電阻有關
開漏復用輸出模式:→0→輸出控制電路→N-MOS開啟→IO口輸出的電壓為0
推挽輸出模式:→1→輸出控制電路→N-MOS關閉,P-MOS開啟→IO口輸出的電壓為1
推挽復用輸出模式:→0→輸出控制電路→N-MOS開啟,P-MOS關閉→IO口輸出的電壓為0
4、暫存器
【1】埠配置低暫存器(GPIOx_CRL) 每四位控制一個IO口, 控制標號0-7的IO口
{MODEO【1:0】→00:輸入模式
CNFO【1:0】→00:模擬輸入模式;01:輸入浮空模式;10:下拉輸入模式,ODR0→0/上拉輸入模式,ODR0→1;11保留}
{MODEO【1:0】→01:輸出模式(10MHZ)/10 :輸出模式(2MHZ)/11:輸出模式(50MHZ)
CNFO【1:0】→00:推挽輸出模式;01:開漏輸出模式;10:推挽復用輸出模式;11:開漏復用輸出模式}
【2】埠配置高暫存器 (GPIOx_CRH) 每四位控制一個IO口, 控制標號8-15的IO口
【3】埠輸入資料暫存器 (GPIOx_IDR)
IDR暫存器低16位,每個位控制該組IO口的一個IO口,對應的是IO口的輸入電平
【4】埠輸出資料暫存器 (GPIOx_ODR)
1)輸出:低16位,每個位控制一個IO口的輸出電平高或低
2)輸入:ODR0→0,下拉輸入模式 ODR0→1,上拉輸入模式(與CRL暫存器相配用)
【5】埠位置設定/清除暫存器(GPIOx_BSRR)
BSRR暫存器低16位,對應設定為1,IO口輸出高電平;對應設定為0,IO口不產生影響
BSRR暫存器高16位,對應設定為1,清除為0;對應設定為0,IO口不產生影響
【6】埠位清除暫存器(GPIOx_BRR)
BRR暫存器低16位,對應設定為1,清除為0;對應設定為0,IO口不產生影響
清除時一般使用【6】
5、所有IO口都可以作為中斷輸入
二、撰寫跑馬燈實驗——庫函式
LED0→PA8 LED1→PD2 IO口輸出高電壓,LED滅;輸出低電壓,LED亮
