STM32F0实战:基于HAL库开发【1.5】

3.1.4 GPIO的寄存器分类

GPIO的寄存器可以以字(32位)、半字(16位)或字节(8位)的方式写入。这些相关寄存器按功能不同可以分成以下三类。

1.I/O端口控制寄存器

每个GPIO端口都有4个32位的控制寄存器,分别是GPIOx_MODER、GPIOx_OTYPER、GPIOx_OSPEEDR、GPIOx_PUPDR,用来配置端口特性。其中:GPIOx_MODER寄存器用来选择I/O模式,如输入、输出、复用或模拟等;GPIOx_OTYPER寄存器用来选择输出类型,如推挽或开漏等;GPIOx_OSPEEDR寄存器用于设定I/O口速度;GPIOx_PUPDR寄存器用来选择I/O口上拉/下拉方式。

2.I/O端口数据寄存器

每个GPIO口有两个16位数据寄存器:输入数据寄存器GPIOx_IDR和输出数据寄存器GPIOx_ODR。其中,从I/O口线锁存的输入数据存放在GPIOx_IDR寄存器中,该寄存器为只读寄存器; GPIOx_ODR用于存储输出数据,可进行读/写访问。另外,每个GPIO口还有一个32位的置位/复位寄存器GPIOx_BSRR,用于对端口的某一位进行单独的位操作。

3.I/O端口锁定及复用功能寄存器

端口A和端口B还含有一个32位端口配置锁定寄存器GPIOx_LCKR和两个32位的复用功能寄存器GPIOx_AFRH和GPIOx_AFRL。端口配置锁定寄存器用于锁定I/O口配置,防止微控制器在运行过程中被更改,复用功能寄存器用于将I/O口的复用功能重映射到其他引脚上。

3.2 GPIO函数

3.2.1 GPIO类型定义

输出类型3-1:GPIO初始化结构定义

3.2 GPIO函数

3.2.1 GPIO类型定义

输出类型3-1:GPIO初始化结构定义

输出类型3-2:GPIO位置位和复位枚举

3.2.2 GPIO常量定义

输出常量3-1:GPIO_pins定义

3.2.3 GPIO函数定义

3.3 GPIO应用实例

下面我们要控制连接在PC13引脚上的LED灯,让它以半秒钟的时间间隔闪烁。这里我们使用STM32CubeMX软件完成时钟和PC13引脚的初始化配置并生成开发项目,对PC13的I/O口电平变化控制将使用HAL库函数来实现。

3.3.1 生成开发项目

1)打开STM32CubeMX软件,单击“New Project”按钮,新建开发项目,在视图选项卡的“Pinout”视图中,将“PF0”引脚的工作模式设置为“RCC_OSC_IN”,将“PF1”引脚的工作模式设置为“RCC_OSC_OUT”,将“PC13”引脚的工作模式设置为“GPIO_Output”,用于驱动LED,如图3-7所示。

2)在“Clock Configuration”视图中,将HSE时钟作为锁相环输入时钟,将锁相环时钟倍频设置为“×6”,并且将锁相环时钟设置为系统时钟,如图3-8所示。

3)在“Configuration”视图中,在“System”列表中单击“GPIO”按钮,如图3-9所示。

4)在弹出的“Pin Configuration”对话框中,将PC13引脚的初始化电平设置为“Low”,如图3-10所示。

5)将生成的开发项目命名为“Flashing”,并将其保存至“D:\STM32F072VB_HAL\chapter03”路径下,如图3-11所示。

6)使用MDK-ARM集成开发环境打开所生成的项目,在程序的主循环中,找到“/*USER CODE BEGIN 3*/”位置,并加入以下代码:

/* USER CODE BEGIN 3 */

/* 置位PC13引脚 */

HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_SET); /* 延时500ms */

HAL_Delay(500);

/* 复位PC13引脚 */

HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_RESET); /* 延时500ms */

HAL_Delay(500);

}/ * US

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1178807.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ABC 441 G(带有优先级的线段树懒标记处理)

G - Takoyaki and Flip 一道有助于理解线段树懒标记下传的好题,其中也涉及到了带有优先级的懒标记的先后处理方式。内容见 code 部分。 参考:zhihu 这位博主将 对懒标记的处理 又单独开了一个函数 \(settag\),使 线…

Youtu-GraphRAG论文精读:垂直统一框架实现GraphRAG性能飞跃,成本节省90%+准确率提升16%+

Youtu-GraphRAG是腾讯优图提出的垂直统一图检索增强框架,通过"图模式"统一约束图构建、索引和检索三阶段,实现构建成本节省90%、准确率提升16%的双重突破。其双重感知社区检测算法无需LLM调用即可生成高质量层次结构,提出的AnonyRA…

AI Agent生存公式:四维乘积模型设计与评估指南(程序员收藏必备)

文章提出AI Agent的四维乘积模型:产品价值 意图清晰度 控制可见性 交互摩擦最小化 执行可信度。四个维度分别是:意图驱动(结构化主输入协议)、人机交互约束(责任分配界面)、界面即时生成(临…

抖音直播间弹幕实时提取

// ==UserScript== // @name 抖音直播间弹幕暴力提取 (V9.1 Protobuf 稳定版) // @namespace http://tampermonkey.net/ // @version 9.1 // @description 移除冗余字段定义,解决 Type Missing 报错 | 100% 精准提取用户名和内容 // @author Gemini &a…

springboot的4s店车辆管理系统设计开发实现

行业背景汽车行业快速发展,4S店作为销售、售后、服务核心渠道,管理复杂度上升。传统人工或单机系统难以应对车辆信息、客户数据、库存、维修记录的动态更新需求,效率低下且易出错。技术需求SpringBoot框架因其快速开发、微服务支持、自动化配…

小程序毕设选题推荐:基于springboot+微信小程序的城镇职工城镇医疗保险缴纳报销基本医保云上管理系统【附源码、mysql、文档、调试+代码讲解+全bao等】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

AI测试革命:从传统验证到三层评估体系,程序员必学指南(建议收藏)

文章探讨了AI时代测试方法的根本转变,从"验证输出"到"评估过程"、“消除差异"到"管理差异”、“静态检查"到"动态适应”。提出了AI工程三层评估体系:结果验证、过程评估和价值判断。测试工程师需转型为"质…

springboot的校园二手交易平台系统设计实现

校园二手交易平台的背景意义校园二手交易平台在当今高校环境中具有重要的现实意义,能够有效解决资源浪费、促进环保、提升学生实践能力等多方面问题。资源优化与循环利用 高校学生每年产生大量闲置物品,如教材、电子产品、生活用品等。传统处理方式往往导…

【毕业设计】基于springboot+微信小程序的城镇职工基本医保云上管理系统(源码+文档+远程调试,全bao定制等)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

springboot的智能民宿预定与游玩系统设计与实现

背景与意义市场需求驱动 随着旅游业的快速发展,个性化、智能化的民宿预订需求显著增长。传统预订平台功能单一,缺乏个性化推荐和本地游玩整合,难以满足现代游客对便捷性和体验感的要求。智能民宿系统通过整合预订、游玩推荐、智能客服等功能&…

2026年市场上靠谱的推拉窗厂家排行榜,安全门窗/窗纱一体铝门窗/平移断桥提升窗,推拉窗生产厂家需要多少钱 - 品牌推荐师

近年来,随着消费者对家居安全、节能与舒适性需求的提升,推拉窗行业正经历从“基础功能”向“系统化解决方案”的转型。六轨断桥推拉窗凭借其优异的防水防风、隔音隔热性能,以及多轨道设计的灵活性与安全性,成为高端…

springboot的快递物流仓库管理系统设计开发实现

背景与行业需求 快递物流行业随着电商的爆发式增长成为现代经济的重要支柱,2023年中国快递业务量突破千亿件,传统人工管理仓库的模式面临效率低、错误率高、成本攀升等问题。企业亟需数字化解决方案实现订单跟踪、库存优化和资源调度自动化。 技术适配…

【课程设计/毕业设计】基于springboot+微信小程序的多平台的博物馆预约系统的设计与实现基于微信小程序的博物馆文创系统的设计与实现【附源码、数据库、万字文档】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

自动打包机实力厂家推荐:2026年品质之选,在线式缠绕包装机/自动包装流水线/纸箱封箱机,自动打包机生产商排名 - 品牌推荐师

随着工业4.0时代加速推进,自动打包机作为物流包装环节的核心设备,正经历从“功能实现”向“智能高效”的转型。当前市场呈现两极分化:头部企业通过技术迭代抢占高端市场,中小厂商则以性价比策略覆盖基础需求。然而…

《统一空间让世界可计算:镜像视界多维感知与空间智能管控技术白皮书》

第一章 从“看见”到“可计算”:空间智能的时代背景1.1 二维感知的终结:为什么“看见”已经不够过去二十年,视频监控与感知系统的核心能力一直停留在“看见”。 看见人、看见车、看见事件、看见异常。但在真实世界的复杂系统中,“…

计算机小程序毕设实战-基于SpringBoot的城镇职工基本医保云上管理系统基于springboot+微信小程序的城镇职工基本医保云上管理系统【完整源码+LW+部署说明+演示视频,全bao一条龙等】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

React Native for OpenHarmony 实战:ProgressRing 环形进度详解

React Native for OpenHarmony 实战:ProgressRing 环形进度详解 摘要:本文深度剖析React Native在OpenHarmony平台实现ProgressRing环形进度组件的完整方案。通过真实设备测试(华为Mate 50 Pro OpenHarmony 3.2.11.5)&#xff0…

假如你从1月18号开始学习AI大模型,多久能学会?_AI大模型学习路线解析,完美!

AI大模型学习需系统掌握理论知识、编程技能和领域专业知识,并具备大规模数据处理、模型优化与调参、多模态学习及分布式训练能力。同时,需持续跟踪前沿技术,培养模型评估与解释能力,最终实现模型部署与维护。学习过程应理论与实践…

React Native for OpenHarmony 实战:SecureStorage 安全存储详解

React Native for OpenHarmony 实战:SecureStorage 安全存储详解 摘要 在跨平台应用开发中,敏感数据的安全存储是核心痛点。本文深度解析 React Native for OpenHarmony 环境下的 SecureStorage 实现方案,聚焦 react-native-secure-storage…

从混乱到智能:机房U位资产管理系统技术架构实战指南

机房U位作为服务器、交换机等设备的核心承载空间,其管理精度直接决定数据中心运维效率与资源利用率。传统人工台账记录、Excel统计模式,常因设备移位、标注误差、信息不同步陷入管理混乱,不仅增加运维成本,更可能因故障定位滞后影…