0 ~: r) @# J s; O3 C, i& } ( ^/ d% \+ ^/ I, g+ v3 X, w STM32F103ZET6(144脚芯片) 7组IO,每组16个,一共112个IO口。 GPIOA,GPIOB…GPIOG2 E/ [& ^* |; ^2 x. Y GPIOAA0~PA15(A,B,C,D,E,F,G均是16个IO口) 9 g) u+ }& w* y% z) p; y% e, ^ FT表示可以容忍5V * H& G0 f/ } F! y 一、4种输入模式:输入浮空,输入上拉,输入下拉,模拟输入 ; `- E1 { ^5 u; [ 1.GPIO的输入工作模式1—输入浮空模式$ ]* Q, W; B* m, s$ w+ G4 P& `& K 2.GPIO的输入工作模式2—输入上拉模式 8 E( s" L/ K) }- ` 3.GPIO的输入工作模式3—输入下拉模式 7 d5 G& a4 M5 M 4.GPIO的输入工作模式4—模拟模式0 W" Z3 }- a2 j4 Z4 g1 i) r% ~5 N 1 _+ R. B8 _5 n- n" v! k 二、4种输出模式:开漏输出,开漏复用功能,推挽式输出,推挽式复用功能- M0 p! M2 z+ v4 J1 x! _% C3 Z 1.GPIO的输出工作模式1—开漏输出模式 2.GPIO的输出工作模式2—开漏复用输出模式 3.GPIO的输出工作模式3—推挽输出模式 . u+ S, s- _2 J' x% y 6 q* S B3 k5 R \5 _0 q4 B 4.GPIO的输出工作模式4—推挽复用输出模式 三、3种最大翻转速度:2MHZ,10MHZ,50MHZ 四、GPIO工作方式) R6 B6 B4 d! ]; B5 {6 F 推挽输出:可以输出强高低电平,连接数字器件 。 开漏输出:只可以输出强低电平,高电平得靠外部电阻拉高。9 H/ v/ x3 K. E % H% }- }6 U& f( w3 J' ]" s 每组GPIO端口的寄存器包括:0 s4 Z. v% a& f5 @ 两个32位配置寄存器(GPIOx_CRL ,GPIOx_CRH) * Q$ L2 |. R. [9 T3 r2 k 两个32位数据寄存器 (GPIOx_IDR和GPIOx_ODR) 一个32位置位/ 复位寄存器(GPIOx_BSRR) 一个16位复位寄存器(GPIOx_BRR) * z9 ~" z8 X( H' |2 ?- k6 x* B# O, o 一个32位锁定寄存器(GPIOx_LCKR): }+ P4 \# J# e4 _; b6 B ) S2 P8 r$ e% B% Q5 s( h+ Y+ M" E5 k 每个I/O端口位可以自由编程,然而I/O端口寄存器必须按32位字被访问(不允许半字或字节访问) 。9 m- V; K; C- P+ q- B 每组IO口含下面7个寄存器。也就是7个寄存器,一共可以控制一组GPIO的16个IO口。 GPIOx_CRL :端口配置低寄存器+ l9 ? Y+ F3 T* ]* ^4 Z GPIOx_CRH:端口配置高寄存器 GPIOx_IDR:端口输入寄存器 GPIOx_ODR:端口输出寄存器% ^- w0 N# P+ w! Q9 C GPIOx_BSRR:端口位设置/清除寄存器 9 I* t) n3 M( x' P' D0 N GPIOx_BRR :端口位清除寄存器: D% x; C( Q( y9 k + r2 C2 u* p; Y7 f/ r$ X GPIOx_LCKR:端口配置锁存寄存器 5 B1 a6 w; z( P8 K4 l! N( D 1.端口配置低寄存器(GPIOx_CRL)和端口配置高寄存器(GPIOx_CRH) 2.端口输入数据寄存器(GPIOx_IDR)4 @7 F" ` n7 F. |$ K7 p7 b! ~ * Z% c9 ^* w0 Z8 H 端口输出数据寄存器(GPIOx_ODR) " P2 ^# w, m( A3 U# j 3.通过设置ODR控制端口位为上拉还是下拉输出模式 & C ?% m. `- b, @6 E; H/ s6 l ODRx设置为0就是下列输入,ODRx设置为1就是上拉输入。 * d) ?" f* d0 @3 d5 F( G 4.端口位设置/清除寄存器(GPIOx_BSRR); F8 f4 E- M( h1 r% C, S 2 E/ i, P4 M4 C& z/ b9 o 端口位清除寄存器(GPIOx_BRR) 通常就采用BSRR的低16位和BRR的低16位,因为BRR的低16位与BSRR的高16位作用类似。 ! g7 W4 ~6 q7 y' | 5.端口复用功能: STM32的大部分端口都具有复用功能。 所谓复用,就是一些端口不仅仅可以做为通用IO口,还可以复用为一些外设引脚。 5 y; j+ g9 f7 q 6.端口重映射功能:就是可以把某些功能引脚映射到其他引脚。比如串口1默认引脚是PA9,PA10可以通过配置重映射映射到PB6,PB7。& g+ z' n% L6 C) y+ Z 和51单片机相比,32所有的IO口都可以作为中断输入。 u$ R+ e C3 u/ a+ t 2 }/ g6 ~. F: y& D 7 o5 t3 `! Z+ [ J+ m5 ^ |
非常清楚 感谢。