
![]() STM32F103ZET6(144脚芯片)3 `$ }1 x+ H; m: E* o + ~1 t/ N* l* g7 Y; `2 ] 7组IO,每组16个,一共112个IO口。3 O0 B6 g! N" r/ m8 o a& S GPIOA,GPIOB…GPIOG$ B( ]7 U, E* l, [: [& g% _! R # {. C U# j- m GPIOA ![]() % P$ n: C8 H3 F' P! m. N FT表示可以容忍5V 一、4种输入模式:输入浮空,输入上拉,输入下拉,模拟输入; E) H( z' H7 C( w* a8 @: V- B5 s2 Q0 n 0 j# S7 l F5 j9 n c7 s 1.GPIO的输入工作模式1—输入浮空模式 ![]() 2.GPIO的输入工作模式2—输入上拉模式 ![]() 3.GPIO的输入工作模式3—输入下拉模式 ![]() 4.GPIO的输入工作模式4—模拟模式 ![]() 二、4种输出模式:开漏输出,开漏复用功能,推挽式输出,推挽式复用功能4 k! h% F c7 K) ?9 K7 h) | 1.GPIO的输出工作模式1—开漏输出模式 2.GPIO的输出工作模式2—开漏复用输出模式 ![]() 1 F( ^! q- g$ s* n 3.GPIO的输出工作模式3—推挽输出模式% K+ F( D3 {2 J p3 |, {/ q 8 @2 `) I) ^9 v4 E: O9 P ![]() f5 i4 t+ N: M7 }% @; d3 E 4.GPIO的输出工作模式4—推挽复用输出模式 ! A" P/ E9 @9 Y' Z! s ' @2 M( P9 P) B( _5 W, | 三、3种最大翻转速度:2MHZ,10MHZ,50MHZ6 F! I. D1 ]; x$ M" l, m" Y$ B1 m 四、GPIO工作方式/ h2 ~( ^1 C8 P" L: b5 B9 s 推挽输出:可以输出强高低电平,连接数字器件 。6 I& B# I0 m7 g- M/ ~& A 开漏输出:只可以输出强低电平,高电平得靠外部电阻拉高。5 x$ v* w! @; @7 K' C6 @7 A 每组GPIO端口的寄存器包括: 两个32位配置寄存器(GPIOx_CRL ,GPIOx_CRH)) o' g, N7 o3 L 两个32位数据寄存器 (GPIOx_IDR和GPIOx_ODR)/ t+ x4 W6 g6 _) o3 n2 p % _7 \& ^ N( F" D4 I: v/ E 一个32位置位/ 复位寄存器(GPIOx_BSRR) 一个16位复位寄存器(GPIOx_BRR) 一个32位锁定寄存器(GPIOx_LCKR) \9 R3 U( L% h, ` 每个I/O端口位可以自由编程,然而I/O端口寄存器必须按32位字被访问(不允许半字或字节访问) 。8 }6 Q# J9 l; ~- w 每组IO口含下面7个寄存器。也就是7个寄存器,一共可以控制一组GPIO的16个IO口。" y9 j: }( S- G4 m& t+ F4 a: L8 x GPIOx_CRL :端口配置低寄存器/ |! X% r) U3 Y3 M GPIOx_CRH:端口配置高寄存器5 _, k7 q! N! `+ K0 V/ I5 n6 \ GPIOx_IDR:端口输入寄存器 ' r2 ~, @& |6 P GPIOx_ODR:端口输出寄存器 3 h* N) ~+ b5 |1 G& G* o GPIOx_BSRR:端口位设置/清除寄存器3 B. c G# l. Z, C& d4 b- i ! b1 R, A8 s7 M GPIOx_BRR :端口位清除寄存器 ( r9 p- K% m( p GPIOx_LCKR:端口配置锁存寄存器 1.端口配置低寄存器(GPIOx_CRL)和端口配置高寄存器(GPIOx_CRH) ![]() 2.端口输入数据寄存器(GPIOx_IDR)4 L: \" U: K7 F9 B2 R5 H ( y# Z, _2 o3 i3 A# t) |2 Y9 t ![]() & Z4 Q- ~* m$ O: g# h$ M 端口输出数据寄存器(GPIOx_ODR) " m0 d; u. ~" t# u! o( F4 U 3.通过设置ODR控制端口位为上拉还是下拉输出模式 3 n' K' [8 e; V% Q" A# |9 v- ]! x H ![]() / n& m% r4 D h+ E ODRx设置为0就是下列输入,ODRx设置为1就是上拉输入。) @0 D2 u$ p* j+ H( c8 k 4.端口位设置/清除寄存器(GPIOx_BSRR)/ W4 H6 J6 h% `' W* w9 P8 Q; v2 G+ V! W - L1 M3 a Z ^5 {; Z9 y ![]() 端口位清除寄存器(GPIOx_BRR)4 [2 X* h$ t& N. r+ X' k/ ?( H. j 通常就采用BSRR的低16位和BRR的低16位,因为BRR的低16位与BSRR的高16位作用类似。 h' R7 C P5 ~, S 5.端口复用功能: STM32的大部分端口都具有复用功能。 所谓复用,就是一些端口不仅仅可以做为通用IO口,还可以复用为一些外设引脚。. d2 `5 ]* w- I8 u: @9 N 6.端口重映射功能:就是可以把某些功能引脚映射到其他引脚。比如串口1默认引脚是PA9,PA10可以通过配置重映射映射到PB6,PB7。: \/ \- ^$ H$ e2 n) ? 和51单片机相比,32所有的IO口都可以作为中断输入。; L+ L- b7 c5 A) |& ~+ A + y/ J N. e5 g( q0 |, c8 ^; Y 4 z5 n$ p8 X. `; O9 K: J# w |
非常清楚 感谢。