




已阅读5页,还剩24页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第8讲GPIO原理与配置方法 ALIENTEK 广州星翼电子官方淘宝店 技术支持论坛 原子教你玩STM32 系列视频 技术支持论坛 开源电子网官方微博 正点原子 微博网址 GPIO8种模式3个最大输出速度 广州星翼电子官方淘宝店 技术支持论坛 ALIENTEK 原子教你玩STM32 系列视频 输入浮空 输入下拉 输入上拉 模拟输入 开漏输出 推挽式输出 推挽式复用功能 开漏复用功能 2MHz 10MHz 50MHz GPIO基本结构 广州星翼电子官方淘宝店 技术支持论坛 ALIENTEK 原子教你玩STM32 系列视频 GPIO输入输出配置相关寄存器寄存器配置在 STM32中文参考手册V10 的8 2节有详细讲解 广州星翼电子官方淘宝店 技术支持论坛 ALIENTEK 原子教你玩STM32 系列视频 GPIOx CRL 端口配置低寄存器 GPIOx CRH 端口配置高寄存器 GPIOx IDR 端口输入寄存器 GPIOx ODR 端口输出寄存器 GPIOx BSRR 端口位设置 清除寄存器 GPIOx BRR 端口位清除寄存器 GPIOx LCKR 端口配置锁存寄存器 广州星翼电子官方淘宝店 技术支持论坛 ALIENTEK 原子教你玩STM32 系列视频 广州星翼电子官方淘宝店 技术支持论坛 ALIENTEK 原子教你玩STM32 系列视频 广州星翼电子官方淘宝店 技术支持论坛 ALIENTEK 原子教你玩STM32 系列视频 广州星翼电子官方淘宝店 技术支持论坛 ALIENTEK 原子教你玩STM32 系列视频 广州星翼电子官方淘宝店 技术支持论坛 ALIENTEK 原子教你玩STM32 系列视频 广州星翼电子官方淘宝店 技术支持论坛 ALIENTEK 原子教你玩STM32 系列视频 广州星翼电子官方淘宝店 技术支持论坛 ALIENTEK 原子教你玩STM32 系列视频 通过跑马灯实例测试寄存器用法 广州星翼电子官方淘宝店 技术支持论坛 ALIENTEK 原子教你玩STM32 系列视频 跑马灯硬件连接 广州星翼电子官方淘宝店 技术支持论坛 ALIENTEK 原子教你玩STM32 系列视频 寄存器配置方式改写工程模板代码 intmain void delay init RCC APB2ENR 1APB2ENR 1CRL 所有GPIO都挂载在APB2下面 广州星翼电子官方淘宝店 技术支持论坛 ALIENTEK 原子教你玩STM32 系列视频 函数分布文件 stm32f10 x gpio c stm32f10 x gpio h GPIO库函数配置方法 GPIO输入输出配置重要函数 voidGPIO Init GPIO TypeDef GPIOx GPIO InitTypeDef GPIO InitStruct uint8 tGPIO ReadInputDataBit GPIO TypeDef GPIOx uint16 tGPIO Pin uint16 tGPIO ReadInputData GPIO TypeDef GPIOx uint8 tGPIO ReadOutputDataBit GPIO TypeDef GPIOx uint16 tGPIO Pin uint16 tGPIO ReadOutputData GPIO TypeDef GPIOx voidGPIO SetBits GPIO TypeDef GPIOx uint16 tGPIO Pin voidGPIO ResetBits GPIO TypeDef GPIOx uint16 tGPIO Pin voidGPIO WriteBit GPIO TypeDef GPIOx uint16 tGPIO Pin BitActionBitVal voidGPIO Write GPIO TypeDef GPIOx uint16 tPortVal voidGPIO PinLockConfig GPIO TypeDef GPIOx uint16 tGPIO Pin 广州星翼电子官方淘宝店 技术支持论坛 ALIENTEK 原子教你玩STM32 系列视频 函数原型 voidGPIO Init GPIO TypeDef GPIOx GPIO InitTypeDef GPIO InitStruct 作用 初始化GPIO的模式和速度 也就是设置相应的GPIO寄存器的CRH和CRL值 第一个输入参数是GPIO TypeDef类型指针变量 确定是哪个GPIO 取值范围 GPIOA GPIOB GPIOC GPIOD GPIOE GPIOF GPIOG第二个参数是GPIO InitTypeDef类型指针变量 确定GPIOx的对应的引脚以及引脚的模式和输出最大速度 typedefstruct uint16 tGPIO Pin GPIOSpeed TypeDefGPIO Speed GPIOMode TypeDefGPIO Mode GPIO InitTypeDef GPIO Init 函数 广州星翼电子官方淘宝店 技术支持论坛 ALIENTEK 原子教你玩STM32 系列视频 1 第一个参数GPIO Pin确定初始化那些管脚 取值范围为 GPIO Pin 0 GPIO Pin 15以及GPIO Pin All2 第二个参数GPIO Speed确定初始化的IO的最大输出速度 其取值范围为枚举类型GPIOSpeed TypeDef的枚举值 typedefenum GPIO Speed 10MHz 1 GPIO Speed 2MHz GPIO Speed 50MHz GPIOSpeed TypeDef 3 第三个参数GPIO Mode 确定初始化的IO的输入输出模式 其取值范围为枚举类型GPIOMode TypeDef的枚举值 typedefenum GPIO Mode AIN 0 x0 模拟输入GPIO Mode IN FLOATING 0 x04 浮空输入GPIO Mode IPD 0 x28 下拉输入GPIO Mode IPU 0 x48 上拉输入GPIO Mode Out OD 0 x14 开漏输出GPIO Mode Out PP 0 x10 通用推挽输出GPIO Mode AF OD 0 x1C 复用开漏输出GPIO Mode AF PP 0 x18 复用推挽 GPIOMode TypeDef 广州星翼电子官方淘宝店 技术支持论坛 ALIENTEK 原子教你玩STM32 系列视频 函数使用范例 GPIO InitTypeDefGPIO InitStructure GPIO InitStructure GPIO Pin GPIO Pin 5 PB 5端口配置GPIO InitStructure GPIO Mode GPIO Mode Out PP 推挽输出GPIO InitStructure GPIO Speed GPIO Speed 50MHz 速度50MHzGPIO Init GPIOB 根据设定参数配置GPIOB 5 广州星翼电子官方淘宝店 技术支持论坛 ALIENTEK 原子教你玩STM32 系列视频 函数原型 uint8 tGPIO ReadInputDataBit GPIO TypeDef GPIOx uint16 tGPIO Pin 作用 读取对应的GPIO的输入值 也就是读取IDR寄存器的值 使用范例 GPIO ReadInputDataBit GPIOE GPIO Pin 5 读取GPIOE 5管脚的输入值 函数GPIO ReadInputDataBit 函数原型 uint16 tGPIO ReadInputData GPIO TypeDef GPIOx 函数GPIO ReadInputData 和GPIO ReadInputDataBit 作用类似 不同的是GPIO ReadInputData 用来读取一组 GPIOA GPIOG 所有IO口 16个 的输入值 范例 GPIO ReadInputData GPIOE 读取GPIOE所有IO输入值 函数GPIO ReadInputData 广州星翼电子官方淘宝店 技术支持论坛 ALIENTEK 原子教你玩STM32 系列视频 读取IO口输出值 也就是读取寄存器ODR的值 范例 GPIO ReadOutputDataBit GPIOE GPIO Pin 5 读取GPIOE 5的输出值GPIO ReadOutputData GPIOE 读取GPIOE所有IO输出值 函数GPIO ReadOutputDataBit GPIO ReadOutputData 设置IO输出高或者低 也就是设置寄存器BSRR BRR的值范例 GPIO SetBits GPIOE GPIO Pin 5 GPIOE 5输出高GPIO ResetBits GPIOE GPIO Pin 5 GPIOE 5输出低 函数GPIO SetBits GPIO ResetBits 广州星翼电子官方淘宝店 技术支持论坛 ALIENTEK 原子教你玩STM32 系列视频 库函数实现实验1跑马灯实例 intmain void GPIO InitTypeDefGPIO InitStructure delay init RCC APB2PeriphClockCmd RCC APB2Periph GPIOB RCC APB2Periph GPIOE ENABLE 使能PB PE端口时钟GPIO InitStructure GPIO Pin GPIO Pin 5 LED0 PB 5端口配置GPIO InitStructure GPIO Mode GPIO Mode Out PP 推挽输出GPIO InitStructure GPIO Speed GPIO Speed 50MHz IO口速度为50MHzGPIO Init GPIOB 广州星翼电子官方淘宝店 技术支持论坛 ALIENTEK 原子教你玩STM32 系列视频 看看我们 实验1跑马灯 库函数操作的源码 是怎么实现的 STM32位带操作 广州星翼电子官方淘宝店 技术支持论坛 ALIENTEK 原子教你玩STM32 系列视频 就是把每个比特膨胀为一个32位的字 当访问这些字的时候就达到了访问比特的目的 比如说BSRR寄存器有32个位 那么可以映射到32个地址上 我们去访问 读 改 写 这32个地址就达到访问32个比特的目的 广州星翼电子官方淘宝店 技术支持论坛 ALIENTEK 原子教你玩STM32 系列视频 在CM3支持的位带中 有两个区中实现了位带 其中一个是SRAM区的最低1MB范围 0 x20000000 0 x200FFFFF SRAM区中的最低1MB 第二个则是片内外设区的最低1MB范围 0 x40000000 0 x400FFFFF 片上外设区中的最低1MB 位带区 支持位带操作的地址区位带别名 对别名地址的访问最终作用到位带区的访问上 注意 这中间有一个地址映射过程 映射关系式 广州星翼电子官方淘宝店 技术支持论坛 ALIENTEK 原子教你玩STM32 系列视频 defineBITBAND addr bitnum addr 0 xF0000000 0 x2000000 addr 0 xFFFFF 5 bitnum 2 defineMEM ADDR addr volatileunsignedlong addr defineBIT ADDR addr bitnum MEM ADDR BITBAND addr bitnum IO口地址映射 defineGPIOA ODR Addr GPIOA BASE 12 0 x4001080C defineGPIOB ODR Addr GPIOB BASE 12 0 x40010C0C defineGPIOF ODR Addr GPIOF BASE 12 0 x40011A0C defineGPIOG ODR Addr GPIOG BASE 12 0 x40011E0C defineGPIOA IDR Addr GPIOA BASE 8 0 x40010808 defineGPIOB IDR Addr GPIOB BASE 8 0 x40010C08 defineGPIOG IDR Addr GPIOG BASE 8 0 x40011E08 IO口操作 只对单一的IO口 确保n的值小于16 definePAout n BIT ADDR GPIOA ODR Addr n 输出 definePAin n BIT ADDR GPIOA IDR Addr n 输入 definePBout n BIT ADDR GPIOB ODR Addr n 输出 definePBin n BIT ADDR GPIOB IDR Addr n 输入 definePFout n BIT ADDR GPIOF ODR Addr n 输出 definePFin n BIT ADDR GPIOF IDR Addr n 输入 definePGout n BIT ADDR GPIOG ODR Addr n 输出 definePGin n BIT ADDR GPIOG IDR Addr n 输入 sys h里面对GPIO输入输出部分功能实现了位带操作 广州星翼电子官方淘宝店 技术支持论坛 ALIENTEK 原子教你玩STM32 系列视频 实验2蜂鸣器实例硬件连接图 BEEP管脚输出0 三极管不导通 蜂鸣器关闭BEEP管脚输出1 三极管导通 蜂鸣器鸣叫 广州星翼电子官方淘宝店 技术支持论坛 ALIENTEK 原子教你玩STM32 系列视频 库函数实现实验2蜂鸣器实例 intmain void GPIO InitTypeDefGPIO InitStructure delay init RCC APB2PeriphClockCmd RCC APB2Periph GPIOB ENABLE 使能GPIOB端口时钟GPIO InitStructure GPIO Pin GPIO Pin 8 BEEP PB 8端口配置GPIO InitStructure GPIO Mode GPIO Mode Out PP 推挽输出GPIO InitStructure GPIO Speed GPIO Speed 50MHz 速度为50MHzGPIO Init GPIOB 广州星翼电子官方淘宝店 技术支持论坛 ALIENTEK 原子教你玩STM32 系列视频 实验3按键输入实例 ifndef KEY H define KEY H include sys h defineKEY0GPIO ReadInputDataBit GPIOE GPIO Pin 4 读取按键0 defineKEY1GPIO ReadInputDataBit GPIOE GPIO Pin 3 读取按键1 defineKEY2GPIO ReadInputDataBit GPIOE GPIO Pin 2 读取按键2 defineKEY3GPIO ReadInputDataBit GPIOA GPIO Pin 0 读取按键3 WK UP defineKEY UP4 defineKEY LEFT3 defineKEY DOWN2 defineKEY RIGHT1voidKEY Init void IO初始化u8KEY Scan u8 按键扫描函数 endif key h 广州星翼电子官方淘宝店 技
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年桂林市第十一中学招聘初中教师考试笔试试题(含答案)
- 3D创新创业项目商业计划书
- 淡水贝类深加工技术创新创业项目商业计划书
- 自动驾驶车辆外观与法规遵从创新创业项目商业计划书
- 智能婴儿监护系统创新创业项目商业计划书
- 汽车沙漠驾驶技巧资讯源创新创业项目商业计划书
- 现场急救知识培训简报课件
- 辐射换热基础知识培训课件
- 2025年工业废气净化处理技术成果绿色环保鉴定报告
- 2025年文化产业园产业集聚与服务体系构建中的区域差异分析报告
- 2024(统编版)语文六年级上册 开学第一课 课件
- 招标代理服务服务方案
- 风力发电技术的发展现状和未来发展趋势
- 财税公司报告
- 脱发患者的头皮及头发护理方法
- 球囊扩张支架植入术
- 小儿推拿手法穴位的全身调理与养生保健
- 警械培训课件
- 人教版七年级英语下册阅读专项训练60篇-含答案
- 人工智能在检验医学中的应用
- 【江苏洋河股份内部控制环境现状、问题及对策12000字(论文)】
评论
0/150
提交评论