版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2.3
基于HAL库方式控制GPIO1基于HAL库方式控制GPIO硬件抽象层的设计与移植本章内容任务实践2教学目标掌握基于库函数的程序开发方式掌握硬件抽象层的设计思想和实现方法了解库函数的设计思想3基于寄存器方式控制GPIO212本质:配置寄存器GPIO引脚的初始化根据引脚的编号和功能来设置相关寄存器的对应位GPIO引脚的操作设置相关寄存器的对应位控制GPIO引脚输出高/低电平(ODR和BSRR)读取相关寄存器的对应位获取GPIO引脚的电平状态(IDR)4--
南昌大学“卓越”辅导员培养工程建设GPIO在内存中开辟一块存储区域,并对其初始化利用接口函数将参数写入到对应的外设寄存器简化配置过程接口函数外设配置参数内存外设寄存器简化寄存器的配置过程125--
南昌大学“卓越”辅导员培养工程建设GPIO实现方式构造存储区域设计相应的数据类型,用于存放配置到外设寄存器的参数设计接口函数将数据类型中的参数写入到对应的外设寄存器中stm32f4xx_hal_gpio.h文件完成数据类型的定义及接口函数的声明stm32f4xx_hal_gpio.c文件完成接口函数的实现以HAL库的GPIO模块为例61 GPIO外设的数据类型7--
南昌大学“卓越”辅导员培养工程建设GPIO概述GPIO外设数据类型的概述采用结构体类型实现,用于定义引脚的序号、工作模式、输出速度等基本特性。引脚初始化引脚电平状态引脚所属端口三个采用枚举类型实现,用于定义引脚的电平状态:高电平和低电平。采用结构体指针实现,用于访问该端口所对应的寄存器组。8--
南昌大学“卓越”辅导员培养工程建设GPIO引脚初始化1 引脚初始化数据类型结构体类型,包括5个成员变量9--
南昌大学“卓越”辅导员培养工程建设引脚编号宏常量定义含义宏常量定义含义GPIO_PIN_0选择该端口的引脚0GPIO_PIN_8选择该端口的引脚8GPIO_PIN_1选择该端口的引脚1GPIO_PIN_9选择该端口的引脚9GPIO_PIN_2选择该端口的引脚2GPIO_PIN_10选择该端口的引脚10GPIO_PIN_3选择该端口的引脚3GPIO_PIN_11选择该端口的引脚11GPIO_PIN_4选择该端口的引脚4GPIO_PIN_12选择该端口的引脚12GPIO_PIN_5选择该端口的引脚5GPIO_PIN_13选择该端口的引脚13GPIO_PIN_6选择该端口的引脚6GPIO_PIN_14选择该端口的引脚14GPIO_PIN_7选择该端口的引脚7GPIO_PIN_15选择该端口的引脚15GPIO_PIN_All选择该端口所有引脚成员变量Pin的取值范围GPIO10--
南昌大学“卓越”辅导员培养工程建设GPIO工作模式成员变量Mode的取值范围宏常量定义含义GPIO_MODE_INPUT浮空输入模式GPIO_MODE_OUTPUT_PP推挽输出模式GPIO_MODE_OUTPUT_OD开漏输出模式GPIO_MODE_AF_PP复用功能下的推挽模式GPIO_MODE_AF_OD复用功能下的开漏模式GPIO_MODE_ANALOG模拟模式注意:与引脚中断相关的工作模式将在之后外部中断中介绍11--
南昌大学“卓越”辅导员培养工程建设GPIO上拉/下拉电阻宏常量定义含义GPIO_NOPULL没有上拉或下拉电阻激活GPIO_PULLUP上拉电阻激活GPIO_PULLDOWN下拉电阻激活成员变量Pull的取值范围12--
南昌大学“卓越”辅导员培养工程建设GPIO引脚速度宏常量定义含义GPIO_SPEED_FREQ_LOW引脚输出速度2MHzGPIO_SPEED_FREQ_MEDIUM引脚输出速度12.5MHz~50MHzGPIO_SPEED_FREQ_HIGH引脚输出速度25MHz~100MHzGPIO_SPEED_FREQ_VERY_HIGH引脚输出速度50MHz~200MHz成员变量Speed的取值范围13--
南昌大学“卓越”辅导员培养工程建设GPIO引脚复用成员变量Alternate的取值范围Alternate
表示引脚的复用(备用)功能;由于不同型号的STM32微控制器片内集成的外设不同,因此该成员变量的取值范围由芯片型号决定。以STM32F4系列芯片为例,通过查阅stm32f4xx_hal_gpio_ex.h文件可以了解Alternate的取值范围;该成员变量的取值一般通过CubeMX软件分配,不需要用户手动设置;14--
南昌大学“卓越”辅导员培养工程建设GPIO引脚电平状态2 引脚电平状态数据类型枚举类型使用枚举类型的好处:提高了程序的可读性,并通过限定变量的取值范围,来确保变量的合法性15--
南昌大学“卓越”辅导员培养工程建设GPIO端口定义3 端口数据类型:指向端口寄存器组的结构体指针宏常量定义含义GPIOA选择端口AGPIOB选择端口BGPIOC选择端口CGPIOD选择端口DGPIOE选择端口EGPIOH选择端口H注意①
不同型号的STM32微控制器的端口数量各不相同;②
端口数据类型的定义是在以芯片型号命名的.h文件中,如STM32F411系列MCU对应的头文件stm32f411xe.h16--
南昌大学“卓越”辅导员培养工程建设GPIO初始化步骤03调用函数02设置模式01定义变量利用引脚初始化结构体类型GPIO_InitTypeDef
定义一个结构体变量。按照引脚的工作模式,依次对该结构体的成员变量赋值,如pin、mode、pull等。,调用初始化函数HAL_GPIO_Init将配置参数写入到对应的寄存器入口参数为端口号和结构体变量使用HAL库的引脚初始化步骤17演示例程1例程目标掌握使用HAL库进行GPIO引脚初始化的方法2例程内容① 设置引脚PA5和PA15为推挽输出模式,无上/下拉电阻,输出低速;② 设置引脚PC13为浮空输入模式;GPIO演示例程:GPIO引脚初始化18--
南昌大学“卓越”辅导员培养工程建设引脚初始化程序引脚PA5和PA15属于同一个端口GPIOA,且配置参数相同,可以采用按位或的方式同时配置,以简化程序。192 GPIO外设的接口函数20--
南昌大学“卓越”辅导员培养工程建设HAL_GPIO_Init :用于完成引脚的初始化;HAL_GPIO_DeInit
:用于复位引脚到初始状态;初始化函数控制函数配置函数分类HAL_GPIO_ReadPinHAL_GPIO_WritePin:用于读取引脚电平状态:用于设置引脚电平状态HAL_GPIO_TogglePin
:用于翻转引脚电平状态HAL_GPIO_LockPin:用于锁定引脚的配置概述GPIOGPIO外设接口函数的概述21--
南昌大学“卓越”辅导员培养工程建设GPIO引脚初始化接口函数:HAL_GPIO_Init函数原型void
HAL_GPIO_Init
( GPIO_TypeDef*
GPIOx,GPIO_InitTypeDef *GPIO_Init
)功能描述引脚初始化入口参数1GPIOx:引脚端口号,取值范围是
GPIOA~GPIOK入口参数2GPIO_Init:指向引脚初始化类型GPIO_InitTypeDef的结构体指针,该结构体包含指定引脚的配置参数返回值无注意事项该函数可以由CubeMX软件自动生成1 引脚初始化函数:HAL_GPIO_Init22--
南昌大学“卓越”辅导员培养工程建设GPIO引脚复位2 引脚复位函数:HAL_GPIO_DeInit接口函数:HAL_GPIO_DeInit函数原型voidHAL_GPIO_DeInit(GPIO_TypeDef*
GPIOx,uint32_t
GPIO_Pin)功能描述复位引脚到初始状态入口参数1GPIOx:引脚端口号,取值范围是
GPIOA~GPIOK入口参数2GPIO_Pin:引脚号,取值范围是
GPIO_PIN_0~GPIO_PIN_15返回值无注意事项该函数需要用户调用23--
南昌大学“卓越”辅导员培养工程建设GPIO读取引脚接口函数:HAL_GPIO_ReadPin函数原型GPIO_PinStateHAL_GPIO_ReadPin(GPIO_TypeDef*
GPIOx,uint16_tGPIO_Pin
)功能描述读取引脚的电平状态入口参数1GPIOx:引脚端口号,取值范围是
GPIOA~GPIOK入口参数2GPIO_Pin:引脚号,取值范围是
GPIO_PIN_0~GPIO_PIN_15返回值GPIO_PinState:表示引脚电平状态的枚举类型变量,当取值为:GPIO_PIN_SET :表示读到高电平GPIO_PIN_RESET
:表示读到低电平注意事项该函数需要用户调用3 读取引脚函数:HAL_GPIO_ReadPin24--
南昌大学“卓越”辅导员培养工程建设GPIO_PinStateHAL_GPIO_ReadPin(GPIO_TypeDef*GPIOx,uint16_t
GPIO_Pin){GPIO_PinState
bitstatus;/*Checktheparameters*/assert_param(IS_GPIO_PIN(GPIO_Pin));//
定义引脚电平状态变量//
检测输入参数GPIO_Pin的合法性if((GPIOx->IDR&GPIO_Pin)!=
(uint32_t)GPIO_PIN_RESET){bitstatus=
GPIO_PIN_SET;}else{bitstatus=
GPIO_PIN_RESET;}return
bitstatus;}函数源码程序解析读取输入数据寄存器IDR的值与指定引脚进行按位与的操作结果不为0,返回高电平,表示该引脚当前的电平状态为高电平结果为0,返回低电平,表示该引脚当前的电平状态为低电平25--
南昌大学“卓越”辅导员培养工程建设接口函数:HAL_GPIO_WritePin函数原型void
HAL_GPIO_WritePin( GPIO_TypeDef*
GPIOx, uint16_t
GPIO_Pin,GPIO_PinState
PinState )功能描述设置引脚输出高/低电平入口参数1GPIOx:引脚端口号,取值范围是
GPIOA~GPIOK入口参数2GPIO_Pin:引脚号,取值范围是
GPIO_PIN_0~GPIO_PIN_15入口参数3PinState:表示引脚电平状态的枚举类型变量,当取值为:GPIO_PIN_SET :表示输出高电平GPIO_PIN_RESET
:表示输出低电平返回值无注意事项该函数需要用户调用4 写入引脚函数:HAL_GPIO_WritePin26--
南昌大学“卓越”辅导员培养工程建设voidHAL_GPIO_WritePin(GPIO_TypeDef*GPIOx,uint16_t
GPIO_Pin,GPIO_PinState
PinState){/*Checktheparameters*/assert_param(IS_GPIO_PIN(GPIO_Pin));assert_param(IS_GPIO_PIN_ACTION(PinState));if(PinState!=
GPIO_PIN_RESET){GPIOx->BSRR=
GPIO_Pin;}else{GPIOx->BSRR=(uint32_t)GPIO_Pin<<
16U;}}函数源码程序解析将设置的电平状态写入置位/复位寄存器BSRR输出高电平,写入BSRR低16位中的对应位输出低电平,写入BSRR高16位中的对应位检测输入参数GPIO_PIN和PinState的合法性27--
南昌大学“卓越”辅导员培养工程建设GPIO翻转引脚接口函数:HAL_GPIO_TogglePin函数原型voidHAL_GPIO_TogglePin(GPIO_TypeDef*
GPIOx,uint16_t
GPIO_Pin)功能描述翻转引脚状态入口参数1GPIOx:引脚端口号,取值范围是
GPIOA~GPIOK入口参数2GPIO_Pin:引脚号,取值范围是
GPIO_PIN_0~GPIO_PIN_15返回值无注意事项该函数需要用户调用5 翻转引脚函数:HAL_GPIO_TogglePin28voidHAL_GPIO_TogglePin(GPIO_TypeDef*GPIOx,uint16_t
GPIO_Pin){/*Checktheparameters
*/assert_param(IS_GPIO_PIN(GPIO_Pin));if((GPIOx->ODR&GPIO_Pin)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026管理经济学面试题及答案
- 2026恒生大学面试题及答案
- 2026秋新教科版科学四年级上册教学课件:第二单元 第8课 呵护我们的器官 含2个微课视频
- 河南省商丘市名校协作2025-2026学年七年级下学期期末质量检测生物学试卷(含解析)
- 2026年咸阳秦都区公费师范生补充招聘(18人)笔试模拟试题及答案详解
- 保险AI伦理与社会责任研究
- 2026年聊城东阿县人民政府办公室所属事业单位公开选聘工作人员笔试备考试题及答案详解
- 2026年柳州市柳北区住房和城乡建设局人员招聘考试备考题库及答案详解
- 2026四川南充市公安局嘉陵区分局招聘警务辅助人员20人考试备考试题及答案详解
- 2026年广东省韶关市住房和城乡建设局人员招聘笔试备考试题及答案详解
- 社区常见病多发病护理常规(22种疾病)2024版
- DL-T5434-2021电力建设工程监理规范
- JT∕T 788-2023 航标遥测遥控系统技术规范
- 福建省农村部分计划生育家庭奖励扶助制度实施细则
- 50G-PON技术白皮书 -中兴
- JX-系列脱氯剂交流课件
- 2023全国结核病竞赛试卷3病例分析(彭)
- 调剖施工程序书及注聚泵操作规程
- 2023年江苏省宿迁市经济技术开发区社区工作人员考试模拟题及答案
- 房建技术员施工员考试参考题库(含各题型)
- 压力管道强度校核计算表
评论
0/150
提交评论