
![]() 5 ~% J* U8 J8 i0 K$ J5 N STM32F103ZET6(144脚芯片) 2 ~3 B, a; i3 a' I5 n1 q 7组IO,每组16个,一共112个IO口。 ( ]7 q8 N2 E- N$ O7 K M3 ?+ p GPIOA,GPIOB…GPIOG / H4 q5 B1 h0 ~ GPIOA ![]() FT表示可以容忍5V 一、4种输入模式:输入浮空,输入上拉,输入下拉,模拟输入 1.GPIO的输入工作模式1—输入浮空模式 M8 B$ T6 y) f 0 [& X# d( ^- }, H$ w. M ![]() 2.GPIO的输入工作模式2—输入上拉模式 ) P" x' e" p W9 R ![]() 3.GPIO的输入工作模式3—输入下拉模式4 n; b& E4 k/ d, S4 T3 [ * {" H# F, g$ S% M9 W0 z$ H( `& e ![]() : ]- O; A. M( s. i 4.GPIO的输入工作模式4—模拟模式 & e( v2 G4 Q* a; I ![]() 2 K0 X; m* f& V 二、4种输出模式:开漏输出,开漏复用功能,推挽式输出,推挽式复用功能 - I! A8 q9 N6 ] 1.GPIO的输出工作模式1—开漏输出模式' Y# ^$ t" }7 e5 K 2.GPIO的输出工作模式2—开漏复用输出模式. O( M) B+ Z, J* \- D/ w: G9 E. F 3 i9 b# Q- b5 [% `* \ ![]() 3.GPIO的输出工作模式3—推挽输出模式 ![]() 4.GPIO的输出工作模式4—推挽复用输出模式 + ~% z% L# l1 k1 ?+ w % |0 N J6 @2 ]7 \ " {* M2 P& q3 X# w) ` 三、3种最大翻转速度:2MHZ,10MHZ,50MHZ1 H! @( j8 ~( l: T 四、GPIO工作方式7 `: m5 R' G9 b9 P + @9 C* n* E2 k7 | 推挽输出:可以输出强高低电平,连接数字器件 。) N8 k9 r9 `1 D v / Q, D, q2 \' H- P7 `5 y- a 开漏输出:只可以输出强低电平,高电平得靠外部电阻拉高。 & |, d# Q& x! D& w& B 每组GPIO端口的寄存器包括: 两个32位配置寄存器(GPIOx_CRL ,GPIOx_CRH)4 y; {( e: A" l$ V* f! `! A" @ 两个32位数据寄存器 (GPIOx_IDR和GPIOx_ODR) ' d/ e. Z9 a' x7 T& s 一个32位置位/ 复位寄存器(GPIOx_BSRR) 一个16位复位寄存器(GPIOx_BRR) 5 s+ X6 U8 B M6 }/ o 一个32位锁定寄存器(GPIOx_LCKR)" H% U1 L: a/ Y; p; v' F * w/ L. M0 G& f0 C7 g 每个I/O端口位可以自由编程,然而I/O端口寄存器必须按32位字被访问(不允许半字或字节访问) 。 & T8 p2 T! N( R' I( p 每组IO口含下面7个寄存器。也就是7个寄存器,一共可以控制一组GPIO的16个IO口。1 f) Q' |( f; r0 G GPIOx_CRL :端口配置低寄存器 ( D3 s% s9 y0 S+ J GPIOx_CRH:端口配置高寄存器 GPIOx_IDR:端口输入寄存器4 C1 v% r! \" j) L % C& z! z/ m& y) H" [1 ? GPIOx_ODR:端口输出寄存器 GPIOx_BSRR:端口位设置/清除寄存器 h, F" c, h( ~" q3 C GPIOx_BRR :端口位清除寄存器/ b$ l) `, i5 a! _' T: | d GPIOx_LCKR:端口配置锁存寄存器$ ], M, Y6 I( k4 J 1.端口配置低寄存器(GPIOx_CRL)和端口配置高寄存器(GPIOx_CRH)6 e" q* V/ B7 J0 r ![]() : p5 V. M' x5 F& j6 G4 m 2.端口输入数据寄存器(GPIOx_IDR) ![]() 端口输出数据寄存器(GPIOx_ODR): D- l4 m" G' N x5 U * b+ m$ t( U! y 3.通过设置ODR控制端口位为上拉还是下拉输出模式4 o* W4 O3 ?' t: Y: c- { % X; U* B+ l3 V$ R( W ![]() ODRx设置为0就是下列输入,ODRx设置为1就是上拉输入。 : |3 y4 d Q# d, G7 X3 l/ v5 j 4.端口位设置/清除寄存器(GPIOx_BSRR)$ m D/ k, s* d# t 9 c0 }) M, a/ X/ ~9 U2 O) r* @& d1 q ![]() ) N+ u$ \+ R( C' ]: m3 j 端口位清除寄存器(GPIOx_BRR)4 v, }* i* e( ^. H- C+ j4 H+ ^6 z W- Z 通常就采用BSRR的低16位和BRR的低16位,因为BRR的低16位与BSRR的高16位作用类似。6 s+ i6 O ^3 v2 }1 f! Q+ @ 0 f# S1 y& v; t$ J; o1 ]% I% k7 \1 D 5.端口复用功能: STM32的大部分端口都具有复用功能。 所谓复用,就是一些端口不仅仅可以做为通用IO口,还可以复用为一些外设引脚。" K7 \1 Z5 O' Y7 t% E4 {3 j" _ 7 n4 |5 a) z' h1 ~9 x1 K 6.端口重映射功能:就是可以把某些功能引脚映射到其他引脚。比如串口1默认引脚是PA9,PA10可以通过配置重映射映射到PB6,PB7。 + k! S) `7 P$ S5 ] 和51单片机相比,32所有的IO口都可以作为中断输入。 # A* ~" ~: Y. D& S- x2 j0 a |
非常清楚 感谢。