资源预览内容
第1页 / 共31页
第2页 / 共31页
第3页 / 共31页
第4页 / 共31页
第5页 / 共31页
第6页 / 共31页
第7页 / 共31页
第8页 / 共31页
第9页 / 共31页
第10页 / 共31页
亲,该文档总共31页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
1 通用输入输出端口通用输入输出端口 GPIO Same as STM32L 2 培训内容培训内容 GPIO引脚分布和结构框图 I/O引脚的多路复用选择和映射(STM32F2新增) I/O引脚的8种配置模式 输入:浮空、上/下拉、模拟输入 输出:可配置上/下拉的推挽输出、开漏输出 I/O引脚的特色功能 引脚配置锁定 引脚上的位操作 I/O补偿单元(STM32F2新增) 特殊I/O引脚说明 STM32F1和STM32F2的GPIO比较 3 培训内容培训内容 GPIO引脚分布和结构框图 I/O引脚的多路复用选择和映射 I/O引脚的8种配置模式 输入:浮空、上/下拉、模拟输入 输出:可配置上/下拉的推挽输出、开漏输出 I/O引脚的特色功能 引脚配置锁定 引脚上的位操作 I/O补偿单元 特殊I/O引脚说明 STM32F1和STM32F2的GPIO比较 4 GPIO引脚分布引脚分布 R(64pin)V(100pin)Z(144pin)I(176pin) PortA (16) 3 5 7 9 PortB (16) PortC (16) PortD (16)PD.2 PortE (16) PortF (16) PortG (16) PortH (16) PH0/1(OSC)PH0/1(OSC)PH0/1(OSC) PortI (12) 总共引脚数目48+1+2=5180+2=82112+2=114128+12=140 GPIO占芯片所有引脚的占芯片所有引脚的80% 左右左右 5 GPIO结构框图结构框图 数字外设 数字外设和 EVENTOUT 复位之后,复位之后,JTAG引脚是“输入上引脚是“输入上/下拉下拉”模式,其他模式,其他I/O引脚默认是“浮空输入引脚默认是“浮空输入”模式,模式, 6 培训内容培训内容 GPIO引脚分布和结构框图 I/O引脚的多路复用选择和映射 I/O引脚的8种配置模式 输入:浮空、上/下拉、模拟输入 输出:可配置上/下拉的推挽输出、开漏输出 I/O引脚的特色功能 引脚配置锁定 引脚上的位操作 I/O补偿单元 特殊I/O引脚说明 STM32F1和STM32F2的GPIO比较 7 可变功能复用选择器可变功能复用选择器 每个引脚都有一个多路复用选择器来决定哪一个 外设功能连到该引脚 每个复用选择器有16路输入可供选择 AF0:系统功能(复位后复用选择器的默认连接) JTAG/SWD,MCO1/2,RTC_50Hz AF113:各种数字外设功能 AF14:保留 AF15:Cortex-M3 EVENTOUT 每个数字外设功能可以映射到多个I/O引脚 具体映射关系参考数据手册(可编程功能映射表格) 映射以单个引脚为单位 8 复用选择器举例复用选择器举例 PA.8 AF0 (MCO1) AF1 (T1C1) AF2 ( ) AF3 ( ) AF4 (I2C3_SCL) AF5 ( ) AF6 ( ) AF7 (USART1_CK) AF8 ( ) AF9 ( ) AF10 (OTG_FS_SOF) AF11 ( ) AF12 ( ) AF13 ( ) AF14 ( ) AF15 (EVENTOUT) Pin 8 AFRH3:0 9 培训内容培训内容 GPIO引脚分布和结构框图 I/O引脚的多路复用选择和映射(STM32F2新增) I/O引脚的配置模式 输入:浮空、上/下拉、模拟输入 输出:可配置上/下拉的推挽输出、开漏输出 I/O引脚的特色功能 引脚配置锁定 引脚上的位操作 I/O补偿单元(STM32F2新增) 特殊I/O引脚说明 STM32F1和STM32F2的GPIO比较 10 输入模式解析(输入模式解析(MODER=00) 根据上下拉电阻是否激活,可以分为 浮空输入、上拉输入、下拉输入 每个AHB1时钟周期,采样一次I/O引脚上的电平,放入输 入数据寄存器 读取GPIO_IDR可得到引脚上的电平状态 GPIO模块在AHB1总线上 输出驱动关闭 Schmit触发输入激活 上/下拉电阻是否激活 取决于GPIOx_PUPDR 11 GPIO输出模式解析(输出模式解析(MODER=01) 根据P-MOS是否激活,可分为 推挽输出、开漏输出 每个AHB1时钟周期,采样一次I/O引脚上的电平,放入输 入数据寄存器 读取GPIO_IDR可得到引脚的当前电平 读取输出数据寄存器GPIO _ODR只能得到上次在推挽模 式下输出的值 开漏模式下软件写1,I/O引脚电平取决于外部电路 输出驱动使能,推挽/开 漏取决于GPIOx_OTYPER Schmit触发输入激活 上/下拉电阻是否激活 取决于GPIOx_PUPDR 12 可变功能模式解析(可变功能模式解析(MODER=10) 输出信号仅来自片上数字外设,根据P-MOS是否激活可分为 推挽输出、开漏输出 I/O引脚上的信号可以输入到片上数字外设和GPIO_IDR 每个AHB1时钟周期采样一次I/O引脚上的电平,放入输入数据寄存器 读取GPIO_IDR可得到引脚上的电平状态 输出驱动使能,推挽/开 漏取决于GPIOx_OTYPER 输出电路由片上外设驱动 Schmit触发输入激活 上/下拉电阻是否激活 取决于GPIOx_PUPDR 13 模拟功能模式解析(模拟功能模式解析(MODER=11) Schmitt触发器关闭 该引脚功耗为0 触发器输出强制为常数0 读取输入数据寄存器始终得到”0” 模拟功能配置下,I/O引脚不是5V容忍 输出驱动关闭 Schmit触发输入关闭 上/下拉电阻被禁止 14 GPIO引脚模式小结引脚模式小结 MODER 输出信号来自 引脚电平信 息输入到 施密特 触发器 PUPDR OTYPER: 配置推挽输出 或开漏输出 OSPEEDR: 配置GPIO输 出带宽 输入模式00GPIO_IDR 激活 配置内部若 上拉、弱下 拉或浮空 GPIO输出01GPIO_ODRGPIO_IDR 复用模式10片上数字外设 外设和 GPIO_IDR 模拟11片上模拟外设:ADC/DACADC/DAC关闭关闭 说明: 1. 灰色填充格,表示对应寄存器无效 2. 红色框,表示芯片以AHB1时钟频率采样引脚电平状态,放在输入数据寄存器 3. 蓝色框,只有这两个模式输出驱动被打开,输出信号分别来自输出数据寄存器和 片上数字外设,由此才需要配置推挽或开漏输出,以及输出带宽(2MHz、25MHz、 50MHz和100MHz) 15 I/O引脚的使用:外设功能引脚的使用:外设功能 模拟外设ADC/DAC 配置成模拟模式 GPIOx_MODER = 11 关闭上/下拉电阻 GPIOx_PUPDR = 00 数字外设 配置成复用模式 GPIOx_MODER = 10 选择推挽/开漏、上/下拉和输出速度 GPIOx_OTYPER、GPIOx_PUPDR、GPIOx_OSPEEDER 配置复用选择器,把使用到的外设连到对应引脚 GPIOx_AFRL或者GPIOx_AFRH 16 I/O引脚的使用:引脚的使用:GPIO 配置方向 输入方向 GPIOx_MODER = 00 输出方向 GPIOx_MODER = 01 对于输入方向 配置上/下拉电阻 GPIOx_PUPDR 对于输出方向 选择推挽/开漏、上/下拉和输出速度 GPIOx_OTYPER、GPIOx_PUPDR、GPIOx_OSPEEDER 17 培训内容培训内容 GPIO引脚分布和结构框图 I/O引脚的多路复用选择和映射(STM32F2新增) I/O引脚的8种配置模式 输入:浮空、上/下拉、模拟输入 输出:可配置上/下拉的推挽输出、开漏输出 I/O引脚的特色功能 引脚配置锁定 引脚上的位操作 I/O补偿单元(STM32F2新增) 特殊I/O引脚说明 STM32F1和STM32F2的GPIO比较 18 GPIO配置锁定配置锁定 每个寄存器端口上的每个引脚,其配置可被锁定 一旦被锁定,该引脚的配置将保持到下次复位 锁定的目标寄存器 MODER、OTYPER、OSPEEDR、PUPDR AFRL、AFRH 寄存器:GPIOx_LCKR LCKi(i=015)对应GPIO端口上每个位的上锁 LCKK:正确写序列使以上上锁配置生效 函数库封装 void GPIO_PinLockConfig(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin) 19 GPIO引脚上锁举例引脚上锁举例 例:对引脚1、5、6的配置上锁 LCKR = 1 GPIOA_BSRR = 0x03 GPIOA_BRR = 0x03 e.g. 同时反向toggle PA.0和PA.1 GPIOA_BSRR = 0x21 GPIOA_BSRR = 0x12 STM32F2位操作,一个寄存器,支持字/半字/字节操作 GPIOx_BSRR32 = Bri| Bsi(i=015) e.g. 同时同向toggle PA.0和PA.1 法一: GPIOA_BSRR = 0x03 GPIOA_BSRR = 0x03 #define GPIOA_BitSet_ADDR = 0xXX #define GPIOA_BitReset_ADDR = 0xXX + 2 *(u16*)GPIOA_BitSet_ADDR = 0x03 *(u16*)GPIOA_BitReset_ADDR = 0x03 e.g 同时反向toggle PA.0和PA.1 GPIOA_BSRR = 0x21 GPIOA_BSRR = 0x12 和STM32F1一样 ResetSetGPIO_BSRR 16位写 22 I/O 补偿单元(补偿单元(Compensation Cell) 在高速I/O翻转时,根据电压温度(PVT)自动调 节I/O的电压转换速率(slew rate) I/O上升沿/下降沿斜率自动调整 在50M/100MHz的输出速率配置下推荐使用 减小I/O噪声对VDD干扰 该特性模式默认关闭的,可通过软件使能 CMP_PD SYSCFG_CMPCR READY SYSCFG_CMPCR 该特性在低功耗模式下自动关闭,开启消耗电流 该特性在VDD在2.43.6V情况下才工作 23 培训内容培训内容 GPIO引脚分布和结构框图 I/O引脚的多路复用选择和映射(STM32F2新增) I/O引脚的8种配置模式 输入:浮空、上/下拉、模拟输入 输出:可配置上/下拉的推挽输出、开漏输出 I/O引脚的特色功能 引脚配置锁定 引脚上的位操作 I/O补偿单元(STM32F2新增) 特殊I/O引脚说明 STM32F1和STM32F2的GPIO比较 24 和振荡器引脚复用的和振荡器引脚复用的I/O引脚引脚 OSC32_IN/OUT LSE振荡器关闭时,对应引脚PC.14/15可以作为GPIO LSE功能优先级低于GPIO功能 当当1.2V区域掉电或者电池备份域由区域掉电或者电池备份域由Vbat供电时,这两个引脚不具供电时,这两个引脚不具 有有GPIO功能功能 OSC_IN/OUT HSE振荡器关闭时,对应引脚PH.0/1可以作为GPIO HSE功能优先级高于GPIO
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号