
![]() ' k! G5 p# D Y1 J* r STM32F103ZET6(144脚芯片) 7组IO,每组16个,一共112个IO口。9 N# r, w9 ^+ q9 y GPIOA,GPIOB…GPIOG GPIOA ![]() . l2 ~: q6 A( F- ~+ f1 E s FT表示可以容忍5V + |) B- U& w1 w8 ^ 一、4种输入模式:输入浮空,输入上拉,输入下拉,模拟输入 # j( B5 g8 M. h; l2 V$ L& ` 1.GPIO的输入工作模式1—输入浮空模式 ![]() 2.GPIO的输入工作模式2—输入上拉模式 ![]() 2 s/ M) L9 y1 A. U+ ]" Y D5 p: l$ T! O 3.GPIO的输入工作模式3—输入下拉模式0 |& a3 s* ~% K7 W3 g+ W. ]0 l. ^ ![]() * P1 g3 F" w( `, `2 e 4.GPIO的输入工作模式4—模拟模式 8 ~/ ^8 h$ T) l) }# ^ ![]() % g! w/ H+ I _; E 二、4种输出模式:开漏输出,开漏复用功能,推挽式输出,推挽式复用功能4 Y3 }" ^9 _3 I- S p$ ` P; C- `( s! d. ~ 1.GPIO的输出工作模式1—开漏输出模式 2.GPIO的输出工作模式2—开漏复用输出模式2 W9 K- ^! Z& Y ![]() $ |8 A8 q7 ~' E, [; ^! \ 3.GPIO的输出工作模式3—推挽输出模式 - k/ ~$ s6 S& g ![]() 4.GPIO的输出工作模式4—推挽复用输出模式 # J* c+ A) c& S D9 q 三、3种最大翻转速度:2MHZ,10MHZ,50MHZ : k5 Q3 s6 w& z1 P) r6 O 四、GPIO工作方式! h; }" U5 y4 H- _ 8 L4 v; ?/ z( {+ b/ p7 K I 推挽输出:可以输出强高低电平,连接数字器件 。 开漏输出:只可以输出强低电平,高电平得靠外部电阻拉高。" S9 h7 A* [* q3 y# b* l% J 每组GPIO端口的寄存器包括: + i5 B8 m" |- y. m 两个32位配置寄存器(GPIOx_CRL ,GPIOx_CRH)6 \$ h2 F' t: G F: x 0 @( [! _$ k4 l 两个32位数据寄存器 (GPIOx_IDR和GPIOx_ODR)- F E# Q$ }0 E, G" a* j2 E9 i 一个32位置位/ 复位寄存器(GPIOx_BSRR) 一个16位复位寄存器(GPIOx_BRR)1 \9 x0 u2 C; ?" Y$ J( x/ g7 I + W, {9 |; x2 i0 A& e/ \ 一个32位锁定寄存器(GPIOx_LCKR) 每个I/O端口位可以自由编程,然而I/O端口寄存器必须按32位字被访问(不允许半字或字节访问) 。- ]9 u/ r9 N+ Q4 j ! b! v6 X3 ~+ d( x6 F3 i; c8 p 每组IO口含下面7个寄存器。也就是7个寄存器,一共可以控制一组GPIO的16个IO口。 . g8 `$ K0 e: I! n4 T9 g GPIOx_CRL :端口配置低寄存器 GPIOx_CRH:端口配置高寄存器! F5 X/ P5 V1 M: R6 l- v+ t7 b ; ?. b& E+ ?7 v0 z M/ z GPIOx_IDR:端口输入寄存器 GPIOx_ODR:端口输出寄存器3 B7 a j$ j3 ^9 b4 ^ # E4 @0 `% K- H& a: r' {; R' _3 @8 c E GPIOx_BSRR:端口位设置/清除寄存器 GPIOx_BRR :端口位清除寄存器 : N! e1 \) z$ w5 q" Y4 H/ D( ?* C GPIOx_LCKR:端口配置锁存寄存器 ) t$ t. ^2 o. k7 [. F1 o! o+ K 1.端口配置低寄存器(GPIOx_CRL)和端口配置高寄存器(GPIOx_CRH)5 a% ~) C7 K: z) Z# w2 n5 F ` ![]() : j$ g+ g4 K3 s6 F8 l6 x/ A 2.端口输入数据寄存器(GPIOx_IDR) ![]() 端口输出数据寄存器(GPIOx_ODR) p5 ^5 u" r q, o 1 m' b. W4 ~2 l K5 a1 K$ I' f 3.通过设置ODR控制端口位为上拉还是下拉输出模式- M0 Z* j, X) Z0 F( Y ![]() ODRx设置为0就是下列输入,ODRx设置为1就是上拉输入。 8 |' \5 W! B1 h 4.端口位设置/清除寄存器(GPIOx_BSRR) 0 P$ _* D# ^+ b+ `9 A- {4 n ![]() 端口位清除寄存器(GPIOx_BRR)8 e5 z$ W! P8 v- j 通常就采用BSRR的低16位和BRR的低16位,因为BRR的低16位与BSRR的高16位作用类似。# D2 T- k; U. i) y' j U9 r- Q - W" \, Z" H) s7 G0 e 5.端口复用功能: STM32的大部分端口都具有复用功能。 所谓复用,就是一些端口不仅仅可以做为通用IO口,还可以复用为一些外设引脚。 6.端口重映射功能:就是可以把某些功能引脚映射到其他引脚。比如串口1默认引脚是PA9,PA10可以通过配置重映射映射到PB6,PB7。0 ?+ R4 K; r, Q9 d, k& J 和51单片机相比,32所有的IO口都可以作为中断输入。4 ]' w7 N' J4 M' L / _* B5 K* H' e! l( L" E |
非常清楚 感谢。