版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第 3 3 章章GPIOGPIO和和AFIO AFIO 本章目标 理解GPIO的不同功能模式 掌握GPIO配置方法 掌握GPIO库函数使用 理解复用功能AFIO 掌握复用功能IO重映射 掌握AFIO库函数的使用 - 3 - 通用通用IO和复用功能和复用功能 GPIO(General Purpose Input Output,通用输入输出接口) 是MCU与外部电路和设备连接的基本外设。也就是常说的端 口或管脚。 AFIO(Alternate Fuction IO,复用功能IO)是指某些GPIO 除了通用功能外还可以设置为一些外设专用的功能 STM32F107有80个GPIO端口,其中的一些还可
2、以把复用功 能重新映射到其他引脚,以实现优化管脚数目和配置目的。 - 4 - 通用通用IO和复用功能和复用功能-GPIO概述概述 STM32F107有GPIOA、GPIOB、GPIOC、GPIOD和GPIOE五个16位通用接 口,每个GPIO 端口有16个口线对应16个管脚。 GPIO端口的每个位可以根据不同的功能,由软件分别配置成八种模式: 输入浮空:用于不确定高低电平的输入。 输入上拉:用于默认为上拉至高电平的输入。 输入下拉:用于默认为下拉至低电平的输入。 模拟输入:用于模拟量的输入。 开漏输出:用于实现电平转换和线与功能的输出。 推挽式输出:用于较大功率驱动的输出。 推挽式复用功能:复
3、用功能情况下的推挽输出。 开漏复用功能:复用功能情况下的开漏输出。 - 5 - 通用通用IO和复用功能和复用功能-GPIO概述概述 - 6 - 通用通用IO和复用功能和复用功能-GPIO概述概述 STM32F107的GPIO的特点如下: 复位期间和刚复位后,复用功能未开启,I/O端口被配置成浮空输入模 式。 所有GPIO引脚有一个内部弱上拉和弱下拉,当配置为输入时,它们可 以被激活也可以被断开。 可以以推挽模式或开漏模式使用输出驱动器。 当作为输出配置时,写到输出数据寄存器上的值(GPIOx_ODR)输出 到相应的I/O引脚。 输入数据寄存器(GPIOx_IDR)在每个APB2时钟周期捕捉I/
4、O引脚上 的数据。 每个GPIO都可以作为外部中断/唤醒线。 - 7 - 通用通用IO和复用功能和复用功能-输入功能输入功能 GPIO作为输入时的结构框图作为输入时的结构框图 当I/O 端口配置为输入时: 输出缓冲器被禁止。 施密特触发输入被激活。 根据输入配置(上拉,下拉或浮动) 的不同,弱上拉和下拉电阻被连 接。 出现在I/O 脚上的数据在每个 APB2时钟被采样到输入数据寄 存器。 对输入数据寄存器的读访问可得 到I/O 状态。 - 8 - 通用通用IO和复用功能和复用功能-输出功能输出功能 GPIO作为输出时的结构框图作为输出时的结构框图 当I/O 端口被配置为输出时: 开漏模式:输出
5、寄存器上的“0”激活N- MOS,而输出寄存器上的“1”将端口 置于高阻状态 推挽模式:输出寄存器上的“0”激活N- MOS,而输出寄存器上的“1”将激活 P-MOS。施密特触发输入被激活。 弱上拉和下拉电阻被禁止。 出现在I/O 脚上的数据在每个APB2时 钟被采样到输入数据寄存器。 在开漏模式时:对输入数据寄存器的 读访问可得到I/O 状态。 推挽式模式时:对输出数据寄存器的 读访问得到最后一次写的值。 - 9 - 通用通用IO和复用功能和复用功能-复用功能复用功能 GPIO作为复用功能时的结构框图作为复用功能时的结构框图 当I/O 端口被配置为复用功能时: 在开漏或推挽式配置中,输出缓冲
6、器 被打开。 内置外设的信号驱动输出缓冲器(复用 功能输出)。 施密特触发输入被激活。 弱上拉和下拉电阻被禁止。 在每个APB2时钟周期,出现在I/O 脚 上的数据被采样到输入数据寄存器。 开漏模式时:读输入数据寄存器时可 得到I/O 口状态。 在推挽模式时:读输出数据寄存器时 可得到最后一次写的值。 - 10 - 通用通用IO和复用功能和复用功能-模拟输入功能模拟输入功能 GPIO作为模拟输入时的结构框图作为模拟输入时的结构框图 当I/O 端口被配置为模拟输入配 置时: 输出缓冲器被禁止。 禁止施密特触发输入,实现了 每个模拟I/O 引脚上的零消耗。 施密特触发输出值被强置为 “0”。 弱上
7、拉和下拉电阻被禁止。 读取输入数据寄存器时数值为 “0”。 - 11 - 复用功能复用功能IO重映射重映射 为了优化64脚或100脚封装的外设数目,可以把一些“复用功能” 重新映射重新映射到“指定的引脚”上。这时,原来的引脚将不再具有该 功能。 例如,PB12和PB13在未开启复用功能时,是两个通用功能的 IO管脚,一旦开启复用功能CAN2,则PB12作为CAN2的RX管 脚,PB13作为CAN2的TX管脚。 如果将外设CAN2进行了重映射,CAN2的RX功能转移到了 PB5, CAN2的TX功能转移到了PB6 而PB12和PB13又变回了通用的GPIO,不再具有CAN2的功能。 - 12 -
8、 复用功能复用功能IO重映射重映射 重映射功能只需要调用库函数GPIO_PinRemapConfig()开启和关 闭即可,例如要使能CAN2的复用功能映射,可以使用如下语句: 【示例示例3- 1】 使能使能CAN2复用功能复用功能 /* 执行该函数后,CAN2的RX功能转移到了PB5, CAN2的TX功能转移到 了PB6,而PB12和PB13又变回了通用的GPIO,不再具有CAN2的功能。 */ GPIO_PinRemapConfig(GPIO_Remap_CAN2, ENABLE); - 13 - 复用功能复用功能IO重映射重映射 GPIO_RemapGPIO_Remap描述描述 GPIO_
9、Remap_SPI1SPI1 复用功能映射 GPIO_Remap_I2C1I2C1复用功能映射 GPIO_Remap_USART1USART1 复用功能映射 GPIO_Remap_USART1USART2 复用功能映射 GPIO_PartialRemap_USART3USART3 复用功能完全映射 GPIO_FullRemap_USART3USART3 复用功能部分映射 GPIO_PartialRemap_TIM1TIM1复用功能部分映射 GPIO_FullRemap_TIM1TIM1复用功能完全映射 GPIO_PartialRemap1_TIM2TIM2复用功能部分映射 1 GPIO_Par
10、tialRemap2_TIM2TIM2复用功能部分映射 2 GPIO_FullRemap_TIM2TIM2复用功能完全映射 GPIO_PartialRemap_TIM3TIM3复用功能部分映射 GPIO_FullRemap_TIM3TIM3复用功能完全映射 GPIO_Remap_TIM4TIM4复用功能映射 GPIO_Remap1_CANCAN复用功能映射1 GPIO_Remap2_CANCAN复用功能映射2 GPIO_Remap_PD01PD01复用功能映射 GPIO_Remap_SWJ_NoJTRST除JTRST 外SWJ 完全使能 (JTAG+SW-DP) GPIO_Remap_SWJ_
11、JTAGDisableJTAG-DP失能 + SW-DP 使能 GPIO_Remap_SWJ_DisableSWJ 完全失能(JTAG+SW-DP) - 14 - GPIO编程实例编程实例 -GPIO配置 下述函数代码用于实现任务描述3.D.1,配置PC6管脚为推挽输出,并将 配置代码封装为配置函数GPIO_Config( )。 【描述描述3.D.13.D.1】 GPIO_Config( ) GPIO_Config( ) void GPIO_Config(void) /* 定义一个GPIO_InitTypeDef类型的结构体,该结构体原型在stm32f10 x_gpio.h中 */ GPIO_
12、InitTypeDef GPIO_InitStructure;GPIO_InitTypeDef GPIO_InitStructure; /* 使能GPIOC口时钟,相当于给GPIOC供电。使能时钟是所有外设工作前的第一步 */ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE); /* 选择管脚6 */ GPIO_InitStructure.GPIO_Pin=GPIO_Pin_6; /* 选择管脚速度为50MHz */ GPIO_InitS
13、tructure.GPIO_Speed=GPIO_Speed_50MHz; /* 选择PC6为推挽输出模式 */ GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; /* 按照结构体GPIO_InitStructure的配置进行初始化 */ /* 选择端口为GPIOC */ GPIO_Init(GPIOC,GPIO_Init(GPIOC, - 15 - GPIO编程实例编程实例 -GPIO配置 GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct); GPIO的配置,可以调用固
14、件库的GPIO_Init( )函数。 GPIO_Init( )函数的原型如下: 参数GPIOx GPIOxGPIOx描述描述 GPIOA选择设置端口为GPIOA GPIOB选择设置端口为GPIOB GPIOC选择设置端口为GPIOC GPIOD选择设置端口为GPIOD GPIOE选择设置端口为GPIOE - 16 - GPIO编程实例编程实例 -GPIO配置 参数参数GPIO_InitStruct GPIO_InitStruct为GPIO_InitTypeDef类型的指针,其结构原型 为: 【结构体结构体3- 13- 1】 GPIO_InitTypeDef GPIO_InitTypeDef t
15、ypedef struct /* 需配置的GPIO管脚,可通过“或”操作同时配置多个管脚 */ uint16_t GPIO_Pin; /* PIO速度 */ GPIOSpeed_TypeDef GPIO_Speed; /* GPIO工作模式 */ GPIOMode_TypeDef GPIO_Mode; GPIO_InitTypeDef; - 17 - GPIO编程实例编程实例 -GPIO配置 GPIO_Pin成员成员 GPIO_PinGPIO_Pin描述描述 GPIO_Pin_0选择设置端口的0管脚 GPIO_Pin_1选择设置端口的1管脚 GPIO_Pin_2选择设置端口的2管脚 GPIO_
16、Pin_3选择设置端口的3管脚 GPIO_Pin_4选择设置端口的4管脚 GPIO_Pin_5选择设置端口的5管脚 GPIO_Pin_6选择设置端口的6管脚 GPIO_Pin_7选择设置端口的7管脚 GPIO_Pin_8选择设置端口的8管脚 GPIO_Pin_9选择设置端口的9管脚 GPIO_Pin_10选择设置端口的10管脚 GPIO_Pin_11选择设置端口的11管脚 GPIO_Pin_12选择设置端口的12管脚 GPIO_Pin_13选择设置端口的13管脚 GPIO_Pin_14选择设置端口的14管脚 GPIO_Pin_15选择设置端口的15管脚 GPIO_Pin_ALL选择设置端口的所
17、有管脚 - 18 - GPIO编程实例编程实例 -GPIO配置 GPIO_Speed成员成员 GPIO_SpeedGPIO_Speed描述描述 GPIO_Speed_2MHz设置管脚速度为2MHz GPIO_Speed_10MHz设置管脚速度为10MHz GPIO_Speed_50MHz设置管脚速度为50MHz - 19 - GPIO编程实例编程实例 -GPIO配置 GPIO_Mode成员成员 GPIO_ModeGPIO_Mode描述描述 GPIO_Mode_AIN设置管脚工作模式为模拟输入 GPIO_Mode_IN_FLOATING设置管脚工作模式为浮空输入 GPIO_Mode_IPD设置管
18、脚工作模式为输入下拉 GPIO_Mode_IPU设置管脚工作模式为输入上拉 GPIO_Mode_Out_OD设置管脚工作模式为开漏输出 GPIO_Mode_Out_PP设置管脚工作模式为推挽输出 GPIO_Mode_AF_OD设置管脚工作模式为复用的开漏 GPIO_Mode_AF_PP设置管脚工作模式为复用的推挽 - 20 - GPIO编程实例编程实例 -GPIO实例 下述程序代码用于实现任务描述3.D.2,实现PC6管脚输出状态翻转。 #includestm32f10 x.h“ void GPIO_Config(void); int main(void) int i; /* 配置PC6管脚为推挽输出,源码参见描述3.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高中语文《项脊轩志》课件+统编版高二语文选择性必修下册
- 锁骨骨折的早期活动与康复指导
- 审计业务风险管理制度
- 审计现场撤点报告制度
- 县卫建局审计制度
- 亚克力财务板规章制度
- 安全与法制教育培训制度
- 华为软件绩效考核制度
- 历史人物曾发明过绩效考核制度
- 审计项目服务制度
- 建筑工程项目管理全过程指导手册
- 骨质疏松治疗仪相关课件
- JJG1036-2022天平检定规程
- 河北高职单招第二大类历年真题及答案
- 超级单品成就超级品牌报告鸭鸭羽绒服解数咨询
- 2025年腹部外伤试题及答案
- 污水池清理专项安全施工技术方案
- 赛马比赛活动方案
- 江苏省专升本2025年美术学艺术概论试卷(含答案)
- 职业调查报告:室内设计行业分析
- 《农村供水水质管理技术导则》编制说明
评论
0/150
提交评论