
一 GPIO基本原理与寄存器配置5 R) Q2 M% H3 u1 p( Q1 E4 l 1 GPIO基本结构和工作方式9 D! S+ N3 J2 H. H/ @ 参考资料:. v) L4 m3 N7 g8 Y) r! ^( V, Q# r 战舰/精英STM32F1开发板! p# w, f: C: P& [/ {. r 《STM32F1开发指南-库函数版本》-第六章 跑马灯实验6.1小节, h* z# S* P6 Y+ q miniSTM32F1开发板 \8 F+ Q0 x+ W2 w) D 《STM32不完全手册-库函数版本》-第六章 跑马灯实验6.1小节 STM32F1xx官方资料 《STM32中文参考手册V10》-第8章通用和复用功能IO(GPIO和AFIO)1 k( z7 p; [+ w 芯片数据手册(datasheet) : ?1 u, ~) D: F4 p" [8 C( d IO说明:7 C$ Y2 }& T2 a- b v 战舰版和精英版144引脚如STM32F103ZET6 一共7组IO 每组IO口有16个IO一共112个IO,从GPIOA-GPIOG mini版如STM32F103RCT6 一共4组IO 一共16*3+3=51个IO GPIOA-GPIOD 其中GPIOD只有GPIOD0-D2 ! z: z) F8 f0 ]/ f4 w# }2 X' I3 P# @ 注:STM32的大部分引脚除了当GPIO使用外,还可以复用为外设功能引脚(比如串口) ![]() 注:大部分IO可容忍5V(有FT标识)0 {7 K7 V8 g0 z: v $ ?2 O; y4 D' r( j1 } GPIO工作方式 4种输入模式: 输入浮空 M( _+ M8 c3 u7 \7 y 输入上拉 输入下拉 模拟输入 / ^! d& E' X: P$ g+ p6 T 4种输出模式:& S6 g; D: L% a9 h; P* p0 ^ 开漏输出3 g) B8 [3 ]8 F- A4 n3 q" [9 r 开漏复用功能 推挽式输出 推挽式复用功能 & R0 S2 v4 r4 z) N 参考资料:STM32八种IO口模式的区别.pdf. w" `6 d0 m# _' P8 B- u 3种最大翻转速度: 2MHZ 10MHZ8 I) k- I: t7 C: p2 g 50MHZ ![]() ![]() ![]() ![]() 注:如果写进去1 N-MOS处于关闭,输出值是由外部上拉或下拉决定的,所以读取的值不一定和写进去的一样。( C5 h* U6 q1 D7 w ![]() ![]() ![]() 参考帖子:http://www.openedv.com/posts/list/21980.htm 注:! y, J8 ^% H1 t 推挽输出可以输出强高低电平,连接数字器件; 开漏输出只可以输出强低电平,高电平得靠外部电阻拉高。输出端相当于三极管的集电极,要得到高电平状态需要上拉电阻才行,适合做电流型的驱动,其吸收电流的能力相对强(一般20mA以内)0 f( L: p; k0 `; c( b- { 2 GPIO寄存器说明 每组GPIO端口的寄存器包括: 两个32位配置寄存器(GPIOx_CRL,GPIOx_CRH), 两个32位数据寄存器(GPIOx_IDR和GPIOx_ODR),% B5 L4 k3 v( t( y/ ?' s5 t( O 一个32位置位/复位寄存器(GPIOx_BSRR),6 O J5 p6 M9 \5 W+ ~, a 一个16位复位寄存器(GPIOx_BRR), 一个32位锁定寄存器(GPIOx_LCKR). 每个I/O端口位可以自由编程,然而I/O端口寄存器必须按32位字被访问(不允许半字或字节访问) ! R! v- u0 X7 z4 q: \ ![]() 每四位控制一个IO 低两位是MODE 高两位是CNF 具体参数设置需要按表所需。 ![]() ![]() ![]() 输入模式下配置CRL或CRH 需要配合ODR配置成上拉或下拉 ![]() 简单来说 配置BSRR可以单独对位操作,就是配置某一个位为1,其他位为0 时,配置0的不改变它本来的状态。而在ODR配置中,配0配1都会发生相应的改变。+ f% ]9 R5 {+ @$ {+ j3 i/ K K j o 2 N A8 H( ^9 Z6 V, [. Z3 X& J) f ![]() BRR相当于BSRR的高16位。 3 STM32F10x GPIO引脚说明# c2 G* u. @0 R! Q ! y- n" s, B$ R! D/ ? ![]() ![]() 注:所有IO都可以作为中断输入 , `1 p6 t2 e! D. d- ] |
【经验分享】STM32F1 GPIO工作原理
【经验分享】STM32F0xx_DMA收发USART数据配置详细过程
【经验分享】STM32F1和STM32F4 区别
【经验分享】STM32F1系列之常用外设说明
【经验分享】STM32介绍
【经验分享】STM32F1x系列——Flash 模拟 EEPROM
【经验分享】STM32F1在MDK下新建标准库函数工程
【经验分享】stm32f1的存储器与复位
【经验分享】STM32F10X-架构
【经验分享】stm32F1 us延时函数