STM32 CubeMX学习:1. 点亮LED

ZYNQ——PS端之XGpioPs_WritePin()函数详解 写pin值函数,输出0还是1 void XGpioPs_WritePin(XGpioPs *InstancePtr, u32 Pin, u32 Data)   参数1:XGpioPs结构体指针   参数2:待写pin   参数3:输出高电平为1,输出低电平为0   返回值:无 void XGpioPs_WritePin(XGpioPs *InstancePtr, u32 Pin, u32 Data) { u32 RegOffset; u32 Value; u8 Bank; u8 PinNumber; 阅读详情
AI摘要

本文介绍了如何使用STM32CubeMX配置GPIO来点亮LED,并详细解释了HAL_GPIO_WritePin函数的使用方法及GPIO输出操作的基础知识。

STM32 CubeMX学习:1. 点亮LED

系列文章目录
  1. 前期的准备
  2. 点亮 LED
  3. 闪烁 LED
  4. 定时器闪烁LED
  5. PWM控制LED亮度
  6. 常见的PWM设备
  7. 按键的外部中断
  8. ADC模数转换
  9. 串口收发
  10. 串口打印遥控器数据
  11. 未完待续…


1.1基础学习:LED灯基础知识

1、LED即发光二极管,当LED内有电流通过时会发光,在安全电流范围内,电流越大,亮度越亮
led

1.2 程序学习

1.2.1 CubeMX 配置 GPIO 的基本操作

1、我这里使用正点原子的探索者开发板,在这块学习板上,与LED相连的引脚为PF9和PF10

LED引脚
所以我们需要在之后配置相应的引脚,这里我对LED灯的点亮原理作简要的说明啦
在这里插入图片描述
如上图所示我们可以看到,发光二极管的阴极与单片机引脚相连,发光二极管的阳极通过电阻与3.3伏的VCC相连。当单片机的引脚给高电平时,近似于发光二极管两端没有电势差,没有电流通过,因此发光二极管没有点亮,相反的如果单片机的引脚给低电平,发光二极管两端有电势差,有电流通过,发光二极管可以点亮。

2、下面我们可以在上一篇新建工程的基础上,在cubeMX中配置GPIO为输出模式,在cubeMX找到对应引脚,配置成GPIO_Output模式。
首先,搜索PF9和PF10(这里以PF9为例进行说明,PF10同理)
搜索引脚

选择引脚模式为输出模式(Output)
引脚模式选择
3、在cubeMX中修改对应引脚的名字。
(1)在左侧找到System core->GPIO;
(2)找到对应的GPIO,例如PF9;
(3)在下方的配置单中user label填写命名,填好后会在芯片缩略图中更新。

如下图所示

命名
4、生成代码:点击GENERATE CODE按键。
生成代码

1.2.2 HAL_GPIO_WritePin函数的讲解

1、在HAL库中我们可以找到一个操作GPIO电平的函数:HAL_GPIO_WritePin函数

void HAL_GPIO_WritePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState)

(1)该函数的作用在于使对应的引脚输出高电平或者低电平。
(2)该函数返回值为void,即没有返回值
(3)该函数有3个入口参数,可根据自己的需求进行设置

	(a)GPIOx——		对应GPIO总线,其中x可以是A…I。例如PF9,则输入GPIOF
	(b)GPIO_Pin——	对应引脚数。可以是0-15。例如PF9,则输入GPIO_PIN_9
	(c)PinState——	GPIO_PIN_RESET:输出低电平;GPIO_PIN_SET:输出高电平

这里我们先尝试将两个LED同时点亮,

这里先给大家补充一些关于单片机的小知识:
对于单片机来说,LED灯等可以被称为是单片机的外设,对于外设的使用,大致可以按照以下几个步骤进行。
首先,HAL状态的初始化,可能包括flash指令缓存、flash数据缓存、flash预读取缓存、中断分组优先级、内部时钟HSI、MCU特定封装的初始化。
然后,进行系统时钟的初始化。
接着,对于GPIO初始化。
最后,操作相应的外设完成所需功能。

1.1.3 程序流程

程序经过HAL_Init初始化, GPIO初始化,进入主循环,在主循环中将2个LED引脚均输出低电平,从而点亮LED灯。主循环代码如下:

/* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
		//set GPIO output low level 
		//设置GPIO 输出低电平 
		HAL_GPIO_WritePin(GPIOF, GPIO_PIN_9, GPIO_PIN_RESET); 
		HAL_GPIO_WritePin(GPIOF, GPIO_PIN_10, GPIO_PIN_RESET); 
		

    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
  }
  /* USER CODE END 3 */

完整的main函数代码如下所示

int main(void)
{
  /* USER CODE BEGIN 1 */

  /* USER CODE END 1 */

  /* MCU Configuration--------------------------------------------------------*/

  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();

  /* USER CODE BEGIN Init */

  /* USER CODE END Init */

  /* Configure the system clock */
  SystemClock_Config();

  /* USER CODE BEGIN SysInit */

  /* USER CODE END SysInit */

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  /* USER CODE BEGIN 2 */

  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
		//set GPIO output low level 
		//设置GPIO 输出低电平 
		HAL_GPIO_WritePin(GPIOF, GPIO_PIN_9, GPIO_PIN_RESET); 
		HAL_GPIO_WritePin(GPIOF, GPIO_PIN_10, GPIO_PIN_RESET); 
		

    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
  }
  /* USER CODE END 3 */
}

然后在keil软件中编译代码并把代码下载到单片机中,
编译和下载
其中1为编译按钮,可以对整个keil工程进行编译
2为下载按钮,可以把代码下载到单片机之中,但是在下载之前,除了要安装相关的驱动(根据自己的情况分别配置),还需要进行一些设置
下载设置
首先点击1处的“魔术棒”,然后点击2处进入debug设置,在3处选择自己的调试器,常见的调试器有ST-Link和J-Link等,大家可以自行查询一下这些调试器的区别,这里不做过多的介绍。在4处,我们可以看到一串地址,说明调试器已经成功连接到电脑。
下载设置
然后点击1处的“Flash Download”,按照2处进行勾选,不过注意,其中“Reset and Run”代表一旦代码下载到单片机中立刻开始运行程序,这里要根据自己的需要灵活的进行设置。这样我们就完成关于下载的一些设置。

最后我们可以看到工程运行效果如图所示
效果
可以看到“TFTLCD”下的两个LED灯已经被点亮,达到了我们预期的效果

代码我已经放到了我的GitHub仓库,如有需要可以下载使用:
CubeMX学习


总结

GPIO输出操作是STM32中最基础的操作啦,通过高低电平的控制完成类似开关的控制,而高电平则对应了计算机中的数字1,而低电平对应了计算机中的数字0,高低电平的不断变化,对应计算机内部的数字变化,STM32便是这样输出信号给外部世界的啦。 从此妈妈再也不用担心我的点灯啦,大家给自己点个赞,学习单片机还要再接再厉哦!
STM32CubeMX实战教程(二)——按键点个灯 相信在看完上一篇非常详细的“简单”教程之后,即便是一个小白,对与STM32CubeMX也是了如指掌了。那么接下来进入单片机学习最关键的环节,点灯,俗话说:点灯是芯片开发最精髓的部分(我说的都是俗话)。那么学习完点灯也就对STM32HAL库的学习有着质的飞跃了。通过点灯我将对GPIO的用法进行一个最全面的介绍。 材料 正点原子探索者开发板,芯片为STM32F407GZT6 STM32CubeMX k... 阅读详情

相关推荐

【三】零基础上手HAL库之—GPIO点灯

【三】零基础上手HAL库之—GPIO点灯 3.1前言 我们已经大致的了解了Cubemx软件界面的一般操作,懂得如何新建工程和使用步骤了,接下来我们正式进入使用Hal库开发的旅程,这是一个惊心动魄的时刻,为什么呢?在使用Hal库的同时你会感觉到其优势性,开发效率大大提高带来的快感,来吧我们先点灯。 前期准备 STM32各类型的板子(本人使用F103Rc和F407ZE)。 CubeMx软件,Keil_IDE。 3.2 LED流水灯 我们先来看看板子对应流水灯的原理图: 采用共阴极连接的LED灯,只有当

qq_45893260的博客 3507

STM32单片机中TogglePin和WritePin的区别及使用方法

在STM32单片机中,WritePin用于将引脚设置为特定电平,而TogglePin用于切换引脚的电平。

wenchm的博客 4673

STM32cubeMX学习记录1-点亮LED

一、准备工作: 1、安装STM32cubeMX软件,注意我使用的是5.0版之前的 2、安装keil-ARM软件,注意版本最好是5.2.6以后的 3、准备一个开发板 二、点灯实验(PB5接一个LED灯,低电平灯亮,高电平灯灭) (后续涉及到多种方式操作的,只讲解一种,追求能实现目的即可) 1、打开STM32cubuMX软件 2、选择左边居中位置的“New Project”进行新...

m0_38028388的博客 1373

细说HAL_GPIO_WritePin()函数写操作BSRR和BRR端口寄存器的原理

第一句define宏定义中的(void)0U,是空语句的表达式。将assert_param(expr)定义为:如果表达式expr真,就是空语句(void)0U;如果表达式expr假,则为assert_failed()函数。define宏定义后,就是对assert_failed()的声明。如果USE_FULL_ASSERT未定义过,则会编译#else中的内容,就是用define宏定义直接将assert_param(expr)定义为空语句(void)0U。

wenchm的博客 9691

手把手教你从零开始使用Matlab联合STM32CubeMX以及Keil开发一个STM32的简单程序-LED循环点亮

手把手教你从零开始使用Matlab联合STM32CubeMX以及Keil开发一个STM32的简单程序-LED循环点亮 开篇语 之前的时候一直使用keil单独的做STM32的程序,或者结合STM32CubeMX生成一些底层的驱动,但是这种方法应用层的代码几乎需要完全的手写,其效率和可视化程度是比较低的,正好前一段之间也在使用Matlab做一些应用层的逻辑开发,所以就想到能不能把两者结合起来,这样的话就能实现底层和应用层都能自动生成代码的目的,于是开始了这样的一个探索,经过了一天的不懈奋斗,终于把一个简单的程序

lidaren9201的博客 7181

STM32CubeMX开发教程(2)— 使用教程(点亮LED灯)

​搭建好 Linux 下 STM32 开发环境后,我们使用 STM32CubeMX 新建工程,点亮 LED 灯。初步了解根据项目需求,如何使用 STM32CubeMX 快速配置 MCU,生成基于 HAL 库的项目工程。以及在项目工程中添加功能代码的注意事项。附加学习如何通过 Makfile 编译工程和如何通过 Ozone 下载、调试工程。............

无人机开发(开源Ardupilot) 1万+

STM32CubeMX学习之旅1:点亮一个LED灯

本学习采用“STM32CubeMX + MDK-ARM”的开发工具组,内部利用ST主推的HAL(Hardware Abstraction Layer,硬件抽象层)库,对新大陆的M3主控模块(内置STM32F103VET6芯片)实现开发学习。总的开发流程如下: 1、利用STM32CubeMX对MCU进行配置。 2、生成基于MDK-ARM集成开发环境的初始化代码。 3、添加功能逻辑,完成应用开发,编译并运行。 一、任务描述 客户需要制作流水灯作为装饰,微控制器使用...

GPNU-IOT的博客 3240

stm32cubeMX使用HAL库点亮LED流水灯

stm32cubeMX使用HAL库点亮LED流水灯

weixin_68811361的博客 2498

STM32CUBEMX学习笔记(1)——点亮LED

硬件:STM32NUCLEO_F401RE 查手册得知LED端口接在PA5,所以把PA5配置成输出就OK了 一、 CUBEMX选择芯片。 输入芯片型号即可。 二、配置时钟。 1.Clock configuration把默认的改成最大的之后回车,让它自己配置。 2.RCC>HSE和LSE都配置为Crystal/CeramicResonator 石英/陶瓷振荡器。 修改频率 点击OK让它自己...

kayyy的博客 673

CubeMX配合PlatformIO/MDK开发STM32,点亮LED灯

记录学习cubeMX和platformIO开发stm32的过程(引用会标注引用链接)

qq_43325034的博客 4113

安卓光速虚拟机ADB调试实战:从密钥配置到设备连接

本文详细介绍了在安卓光速虚拟机中进行ADB调试的完整实战流程。核心在于通过密钥配置解决设备未授权问题,并启用网络调试与端口映射,最终实现电脑与虚拟机的稳定连接。文章提供了从原理理解、脚本修改到实战命令和疑难排查的全方位指南,帮助开发者和爱好者高效利用光速虚拟机作为移动测试沙盒。

CAT789的专栏 553

【STM32】STM32CubeMX学习笔记1:点亮LED灯(HAL库)

本文主要介绍用STM32点亮LED的过程,采用STM32CubeMX软件,HAL库实现。

NeilBlack419的博客 1902

树上柑橘检测实战:自制数据集与YOLO训练全流程复盘

目标检测模型的性能上限往往由训练数据决定,尤其在农业视觉这样的复杂场景中,公开数据集与真实环境的差异常导致模型漏检、误检频发。高质量的标注数据是模型泛化的基础,从采集、清洗到统一标注规范,每一步都直接影响最终效果。对于检测任务而言,VOC与YOLO两种主流标注格式的转换是工程落地的常见环节,理解坐标归一化原理并做好校验,能有效避免训练事故。在模型训练阶段,合理划分数据集、谨慎选择数据增强策略,并结合切片推理解决小目标漏检,是果园场景下提升精度的关键。这套基于2511张果树图像的单类别检测流程,不仅支撑了柑橘

weixin_29057163的博客 230

STM32CubeMX学习笔记1-点亮LED灯

STM32CubeMX用于STM32配置和初始化C代码生成本章目标为点亮一颗LED灯,所用芯片为stm32f407zgt6,编译环境为keil5。1. 从主菜单栏中选择文件 > 新建项目,或从主页选择新建项目。2. 选择MCU选择器选项卡,并通过将STM32F4选为“系列”、将STM32F407选为“产品线”和将LQFP100选为“封装”来筛选STM32产品3. 从MCU列表中选择STM32F407VGT6,然后点击“确定”。

H2z1220的博客 1035

BPMN-JS :修改节点“Change Type”事件类型

修改路径:node_modules\bpmn-js\lib\features\replace\ReplaceOptions.js。

TaylorY的博客 678

一文说清STM32CubeMX中文汉化全流程(图解说明)

详细讲解STM32CubeMX中文汉化的完整流程,通过图文并茂的方式手把手教学,解决界面英文带来的使用障碍,让开发更高效。掌握stm32cubemx中文汉化技巧,提升嵌入式开发体验。

weixin_42499004的博客 6266

小白菜的STM32cubeMX学习(1)点亮第一颗LED

小白菜的STM32cubeMX学习(1)点亮第一颗LED0 前言1 安装CubeMX2 用CubeMX创建第一个project3 一些关于CubeMX的基础3.1 软件界面3.2 代码保护区4 让我们来点灯吧4.1 电路原理图4.2 CubeMX配置IO口4.3 完成代码 0 前言 本文参考B站视频[STM32CubeMX&HAL库教学]快速STM32基础功能学习系列. 从视频里找东西有点麻烦,所以建立这个学习笔记用来归纳整理。 本系列所有工程都会上传到github上,欢迎批评指正(刚开始用gith

qq_43029573的博客 1112

OnePlus线刷救砖与OTA全量包:从故障恢复到系统升级的完整指南

本文详细介绍了OnePlus手机线刷救砖与OTA全量包的完整操作指南,包括故障诊断、线刷救砖实战教程、OTA全量包升级优势及进阶玩法。通过具体案例和实用技巧,帮助用户从系统故障恢复到安全升级,特别适合Android系统爱好者和OnePlus用户。

weixin_30338481的博客 616

STM32HAL库学习Cubemx(1)点亮LED灯

在hal_gpio.c中有一个叫HAL_GPIO_WritePin函数 有三个值 分别为GPIO端口 GPIO引脚 和引脚为低电平还是高电平 GPIO_PIN_RESET为输出低电平 GPIO_PIN_SET为输出高电平。在while(1)里面调用该函数 输入对应的LED对应的端口和引脚 在看原理图 LED是与低连接还是于VCC连接 来决定是输出低电平还是高电平 就此可以点亮LED灯。选择LED对应的引脚 根据你板子上对应的LED引脚或者Proteus上的引脚。选择你对应的芯片型号。

m0_62947929的博客 929

OpenClaw与传统AI助手区别,为什么要本地部署

OpenClaw是一款本地部署的开源AI助手框架,与ChatGPT等云端服务相比具有显著优势。它支持完全离线运行,数据隐私性高,所有信息都存储在本地设备上,避免了云端服务的隐私风险。OpenClaw采用模块化设计,可自由定制功能,且无需支付订阅费用,只需一次性硬件投入。推荐在树莓派、迷你主机等设备上部署,最低配置仅需1核CPU和1GB内存。安装过程包含系统初始化、依赖安装、配置设置等步骤,支持通过systemd服务实现开机自启和后台运行。特别适合注重数据安全、需要离线使用或预算有限的用户群体。

一键难忘的博客 1688

把核心变干净的代价与回报:为什么推动 Clean Core,几乎绕不开 SAP Integration Suite 与 API Management

Clean Core的核心价值在于构建可持续升级的ERP系统架构,其关键不在于减少代码或限制扩展,而是通过解耦和治理实现系统边界的清晰划分。这一理念将推动企业从传统的"私搭乱建"式集成向平台化工程转型,而SAP Integration Suite和API Management正是实现这一转型的核心组件。 Integration Suite作为集成中枢,通过统一平台、可复用内容库和事件驱动架构,将碎片化连接转变为标准化能力;API Management则负责建立接口治理体系,通过统一入口、

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 241

STM32 CubeMX学习实验1:点亮led

点击右上角的generate code按钮, 在弹出的对话框中点击Open Project打开生成的新项目。

qq_46038320的博客 311

一文快速教你如何下载国自然模版

5. 成功进入“相关文件查看”页面后,点击左侧的“项目申请文件“,如果你此次申请的是“面上项目”,选择对应的下拉框,找到对应的模版下载即可。6. 🫑们发现,在当前页面点击“青年科学基金项目”,左侧出现的是“原国家杰出青年科学基金项目”。7. 进入下一页后,点击“青年科学基金项目”,便可以在右侧找到🫑们要找的模版啦。2. 成功登陆后,点击1处的“首页”,在首页界面,再点击2处的“项目批准”。8. 点击上图3处的“文件详情”,就可以找到可以下载的模版啦(如下图)。3. 从“项目批准”进入后,点击“管理”。

薰珞婷紫小亭子的博客 2397

STM32Hal库学习(一)CubeMx学习点亮LED灯[转载]

STM32Hal库学习(一)CubeMx学习点亮LED灯 2018年07月10日 01:05:03 静守己心 阅读数:174更多 个人分类: STM32 cubemx安装: MDK5安装+破解+pack 言归正传 新建工程选择是STM32型号,进入芯片页面 1.首先必备的SYS和RCC选择外部晶振、配置LED引脚,因板子而异PE5 PE6 2.在clock configur...

zhjmyx的专栏 1391

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

【STM32】STM32CubeMX教程二--基本使用(新建工程点亮LED灯)

前言 在配置好CubeMX之后,就是新建工程的开始了,那么首先我们需要一些准备,本片博客我们会很详细的介绍STM32CubeMx的基本使用和如何创建一个新的工程并且点亮LED灯 面向初学者 如果您想着快速实现工程的创建,可以直接跳过功能介绍,观看工程创建一栏 并且,在新建工程时,我们分为了具体流程1~7 如果您不想看每部分的讲解,直接按照流程操作即可,5分钟即可成功点亮LED灯 安装...

Z小旋 29万+

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

最详细STM32,cubeMX 点亮 led

实验开发板:STM32F103C8T6。所需软件:keil5 , cubeMX。实验目的:了解 led 点亮原理,cubeMX配置 , GPIO 等相关函数。GPIO ,全称为通用输入输出(General-Purpose Input/Output ),是 连接外部设备的通用接口。用于与外部设备进行数字信号的输入和输出。它在嵌入式系统、单片机、单板计算机等领域都有广泛的应用,使数字系统能够与外部世界互动和通信。输入:GPIO 可以用于接受外部设备发送的数字信号,如 按钮的状态,传感器数据。

wuyiyu_的博客 7793

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

上一篇: STM32 CubeMX学习:0. 搭建开发环境
下一篇: STM32 CubeMX学习:2. 闪烁LED
北冥航
博客等级 码龄7年 232粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值