* @, B& [$ t2 _ STM32F103ZET6(144脚芯片) 7组IO,每组16个,一共112个IO口。& K" `7 i1 n9 a7 E7 L7 M GPIOA,GPIOB…GPIOG& p; A7 u) X9 N; w) P + u/ H. q/ f/ \# b GPIOAA0~PA15(A,B,C,D,E,F,G均是16个IO口) 0 b* f9 n% L+ X' f FT表示可以容忍5V 一、4种输入模式:输入浮空,输入上拉,输入下拉,模拟输入5 g% R/ ^( @1 H4 K- S' J- f 1.GPIO的输入工作模式1—输入浮空模式 8 k& A) s, Z2 T, [( e, P$ Y* r 2.GPIO的输入工作模式2—输入上拉模式 $ b1 {+ B4 s/ W/ G* a( L$ K" e# N9 o 3.GPIO的输入工作模式3—输入下拉模式) p/ j. _5 U! q- Z8 S 8 W6 c0 ^+ g" R 3 A8 ~ e+ t+ q, q 4.GPIO的输入工作模式4—模拟模式# l( L! s% }7 R5 S5 y 二、4种输出模式:开漏输出,开漏复用功能,推挽式输出,推挽式复用功能9 P3 e U9 y" e: O# J% M. C 1.GPIO的输出工作模式1—开漏输出模式 2.GPIO的输出工作模式2—开漏复用输出模式4 ?* [2 A5 ~% h5 p. K, Q' D& L 0 U- P1 D7 s3 q! ~7 d 3.GPIO的输出工作模式3—推挽输出模式 + W; V9 T# {4 I+ n3 I$ S 4.GPIO的输出工作模式4—推挽复用输出模式+ @1 |7 f$ \% n# V$ R; r4 d, ~. h6 [ . n0 c+ y$ ~* b2 M' i 三、3种最大翻转速度:2MHZ,10MHZ,50MHZ ! w$ ~% W8 ]4 a: A 四、GPIO工作方式 . q9 |% r. o1 |4 R 推挽输出:可以输出强高低电平,连接数字器件 。( [% ]6 O1 n! r% P+ o r 开漏输出:只可以输出强低电平,高电平得靠外部电阻拉高。9 H. R4 m, N0 A& U- k% p. R 每组GPIO端口的寄存器包括: 两个32位配置寄存器(GPIOx_CRL ,GPIOx_CRH) 6 S# ~! F; n1 @1 [; B6 a" L% d, \0 Q 两个32位数据寄存器 (GPIOx_IDR和GPIOx_ODR) 一个32位置位/ 复位寄存器(GPIOx_BSRR) 6 T J0 N- S- x 一个16位复位寄存器(GPIOx_BRR)" R1 o! ^- Y1 r. u" j 一个32位锁定寄存器(GPIOx_LCKR) 6 M& {* F+ c: @ 每个I/O端口位可以自由编程,然而I/O端口寄存器必须按32位字被访问(不允许半字或字节访问) 。0 J5 e6 z( `7 W8 M5 p3 N 1 Q$ v, x# z9 `) ^; D, J1 g1 O 每组IO口含下面7个寄存器。也就是7个寄存器,一共可以控制一组GPIO的16个IO口。 GPIOx_CRL :端口配置低寄存器 7 \3 i" D, i% ?: ? GPIOx_CRH:端口配置高寄存器5 {' X x; s& n$ q 2 ^7 p8 c6 f; V1 w% M. e# ? GPIOx_IDR:端口输入寄存器 " {1 y' r8 P5 l3 m6 l9 ]" v GPIOx_ODR:端口输出寄存器 GPIOx_BSRR:端口位设置/清除寄存器) }4 w; s- P% Q+ l/ s0 ^1 t GPIOx_BRR :端口位清除寄存器 GPIOx_LCKR:端口配置锁存寄存器 1.端口配置低寄存器(GPIOx_CRL)和端口配置高寄存器(GPIOx_CRH)" c' o( u- O# x9 r: Q8 _ ; E# k }6 z) f! f( v0 U/ j 2.端口输入数据寄存器(GPIOx_IDR)6 g4 X! `, q9 P4 A. Z- h 2 w% r7 E) n0 }2 L6 f 端口输出数据寄存器(GPIOx_ODR) % [8 t7 |0 C0 Y, ^& F 3.通过设置ODR控制端口位为上拉还是下拉输出模式) `0 r* S! U" j" o# F& ]% M* U * _- B& K- s4 R; i* j . J$ t- m7 A- U( \- C. W2 }; m7 r ODRx设置为0就是下列输入,ODRx设置为1就是上拉输入。6 E+ p( {$ T1 ^2 V2 \ 4.端口位设置/清除寄存器(GPIOx_BSRR) 9 b0 R' z, J/ s8 C) X( m5 |+ ?; t 端口位清除寄存器(GPIOx_BRR)0 ]0 q4 `# R' f" w& g& _+ Q/ }7 I# S 通常就采用BSRR的低16位和BRR的低16位,因为BRR的低16位与BSRR的高16位作用类似。 5.端口复用功能: STM32的大部分端口都具有复用功能。 所谓复用,就是一些端口不仅仅可以做为通用IO口,还可以复用为一些外设引脚。 6.端口重映射功能:就是可以把某些功能引脚映射到其他引脚。比如串口1默认引脚是PA9,PA10可以通过配置重映射映射到PB6,PB7。4 O% m2 z( d1 c5 }+ n8 ^. l7 [ 和51单片机相比,32所有的IO口都可以作为中断输入。* u: _4 u$ m* M6 v' ] 4 [$ e' T( g0 \9 _: P' l |
非常清楚 感谢。