(学习记录)使用 STM32CubeMX——GPIO引脚输出配置

news2024/9/23 21:54:36

学习总结:(学习总结)STM32CubeMX HAL库 学习笔记撰写心得icon-default.png?t=O83Ahttps://blog.csdn.net/Wang2869902214/article/details/142435481
 

STM32F103C8T6的GPIO引脚输出配置

时钟配置

(学习记录)使用 STM32CubeMX——配置时钟(入门)icon-default.png?t=O83Ahttps://blog.csdn.net/Wang2869902214/article/details/142423522

GPIO引脚选择

①:在 “输出与配置”页面下

②:大部分STM32F103C8T6最小系统板上自带一个板载PC13引脚的LED灯
这里引脚选择可以按照自己的情况去选择对应的引脚,我这里就选择了PC13引脚

然后点击PC13引脚后,可以发现他会弹出很多个选项,而这些选项就是该引脚(PC13)能够复用的所有引脚功能:

  1. PC13-TAMPER-RTC:
    • 这是指PC13引脚可以被配置为与实时时钟(RTC)的篡改检测(TAMPER)功能相关联。TAMPER引脚通常用于检测外部对系统的物理篡改,当检测到篡改时,可以触发特定的安全响应。
  2. Reset_State:
    • 这个选项表示初始状态(未使用)
  3. RTC_OUT:
    • 这表示PC13引脚可以配置为输出RTC的某些信号,如秒脉冲、闹钟信号等。具体功能取决于RTC的配置。
  4. RTC_TAMPER:
    • 与“PC13-TAMPER-RTC”类似,这是指该引脚可以作为RTC的篡改检测输入。
  5. GPIO_Input:
    • 将PC13配置为通用输入引脚,用于读取外部信号的状态。
  6. GPIO_Output:
    • 将PC13配置为通用输出引脚,用于控制外部设备或信号。
  7. GPIO_Analog:
    • 将PC13配置为模拟输入模式,通常用于连接模拟信号源,如传感器的输出,到ADC(模数转换器)。
  8. EVENTUT:
    • 这个选项可能是指该引脚可以配置为事件输出(EVENT OUT),用于生成特定的事件信号,这些信号可以触发其他硬件模块或中断。
  9. GPIO_EXTI13:
    • 这表示PC13引脚可以配置为外部中断源(EXTI,External Interrupt)。当该引脚上的信号发生变化(如上升沿、下降沿或双边沿触发)时,可以触发中断,从而执行特定的中断服务程序。

选择GPIO_Output模式

①:这里我们选择GPIO_Output模式

②:这里打开GPIO选项

③:点击对应的PC13 PIN 

④:下方有个 User Lable :这里相当于用户标签(重命名),生成代码后会帮你宏定义此引脚名字
使用用户标签的好处:如果设置了用户标签,然后在后续如果需要变换此LED引脚,只需要将变更后的引脚的用户标签改为之前的用户标签,即可不需要修改代码,重新生成代码后即可使用,因为这里的原理就是宏定义修改,所以不用代码中修改具体的引脚是哪个。于是这里我设置为:LED


详细GPIO  Pin配置

  1. GPIO output level (输出电平):
    • LOW: 设置引脚初始输出电平为低电平(0V)。
    • High: 设置引脚初始输出电平为高电平(通常接近供电电压,如3.3V或5V)。
  2. GPIO mode (GPIO模式):
    • Output Push-Pull (推挽输出): 这是最常见的输出模式,适用于大多数数字信号输出。在此模式下,引脚可以主动输出高电平或低电平。
    • Output Open Drain (开漏输出): 在此模式下,引脚只能主动输出低电平。当引脚被设置为高电平时,它实际上是被置为高阻态(Z态),允许外部电路(如上拉电阻)将引脚拉高到高电平。开漏输出通常用于需要多个输出共享同一总线的场景,如I2C总线。
  3. GPIO Pull-up/Pull-down (上拉/下拉):
    • No Pull-up and Pull-down (无上拉/下拉): 引脚在未被驱动时保持浮空状态,易受外部干扰。
    • Pull-up (上拉): 在引脚内部连接一个上拉电阻,使引脚在未被驱动时默认保持高电平。
    • Pull-down (下拉): 在引脚内部连接一个下拉电阻,使引脚在未被驱动时默认保持低电平。
  4. Maximum output speed (最大输出速度):
    • LOW: 设置引脚输出信号的最大速度为低速。
    • Medium: 设置引脚输出信号的最大速度为中速。
    • High: 设置引脚输出信号的最大速度为高速。
    • 输出速度的选择通常取决于所连接外设的要求以及系统时钟的配置。
  5. User Label (用户标签):
    • 这是一个可选的字段,允许您为引脚分配一个自定义的名称或标签,以便在代码中更容易地识别和使用它。

这些配置选项使您能够灵活地配置GPIO引脚以满足特定的应用需求。例如:

  • 如果您需要控制一个LED,您可能会选择“Output Push-Pull”模式,并根据LED的极性设置初始输出电平为“High”或“Low”。
  • 如果您需要与其他设备通信并使用开漏输出模式(如I2C),则应选择“Output Open Drain”模式。
  • 如果您希望引脚在未被驱动时保持稳定的电平,则应使用上拉或下拉电阻。
  • 如果您需要快速切换引脚状态以匹配高速外设的要求,则应选择较高的输出速度。
     

LED推荐配置:

  • GPIO output level: 根据您的LED连接方式和期望的初始状态,选择“High”或“Low”。如果LED正极接GPIO引脚,负极接地,则通常选择“Low”以点亮LED。
  • GPIO mode: 选择“Output Push Pull”以启用推挽输出模式。
  • GPIO Pull-up/Pull-down: 对于推挽输出模式,通常选择“No Pull-up and Pull-down”,因为上拉/下拉电阻在此模式下不适用。
  • Maximum output speed: 根据需要选择“LOW”、“Medium”或“High”。对于大多数LED控制应用,“LOW”或“Medium”速度通常足够。

代码生成

点击右上角的代码生成后,打开Keil5工程的main.h中可以看见:

这里有我们刚刚在STM32CubeMX中配置的用户标签,他会再以一种特定的格式帮我组装一下

控制LED代码

在main.c的主函数while循环中:
 

  /* USER CODE BEGIN WHILE */
  while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
	  HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin, GPIO_PIN_SET);
	  HAL_Delay(500);
	  HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin, GPIO_PIN_RESET);
	  HAL_Delay(500);
	  
  }
  /* USER CODE END 3 */

HAL库对比标准库来说,很多函数都是HAL开头的,函数的命名也是非常容易理解的
这里通过代码让用户标签为LED的引脚(PC13)周期500ms翻转电平(LED闪烁)

在选择引脚的参数时,有一个初始化电平状态,此选项会在代码运行初始化GPIO引脚时改变GPIO状态,所以需要更具硬件设置来选择对应的初始化电平状态:例如LED灯是低电平点亮,那么如果初始化为低电平,单片机一上电后LED灯就会点亮

编译下载

每次编译下载后代码都不会自动运行,需要复位才会运行代码,我们进行如下操作即可下载后自动运行

①:选择上方的 魔术棒

②:选择Debug

③:点击Settings

①:选择Flash Download 

②:勾选 Reset and Run

如果有此选项:“Pack”就继续操作,如果没有的话就不用继续修改了,也可以自动运行

①:选择Pack

②:取消勾选Enable

编译后下载到STM32F103C8T6的开发板中,就能发现对应的引脚上的LED灯正在每500ms进行闪烁
 

效果演示

STM32CubeMX GPIO输入LED测试视频

章节结尾:

至此,本章节GPIO输出配置部分结束,再下一章学习笔记中,将会记录GPIO引脚输入配置

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

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

相关文章

【软件工程】可行性研究

一、目的 二、任务 三、步骤 四、结果:可行性研究报告 例题 选择题

创新学生宿舍管理:Spring Boot框架实践

第2章 开发环境与技术 学生宿舍管理系统的编码实现需要搭建一定的环境和使用相应的技术,接下来的内容就是对学生宿舍管理系统用到的技术和工具进行介绍。 2.1 MYSQL数据库 本课题所开发的应用程序在数据操作方面是不可预知的,是经常变动的,没…

pdf怎么删除空白页?分享5个删除pdf页面的方法(批量删除法)

pdf文件因其跨平台、格式稳定的特性,已成为我们工作、学习中不可或缺的一部分。那么在编辑pdf格式文档中,总会遇到一些难题,比如说pdf怎么删除空白页 pdf与word一样,具备了多种编辑功能,只不过是word倾向于编辑&#x…

zabbix入门单机部署

zabbix官网 1进入官网后选择右上角Download 选择你要的版本以及需要的组件,网页下方会自动生成需要操作的步骤 ,跟着步骤一步一步安装即可: 这里跟着官网步骤一步步走下去就可以了 但是需要注意的是安装 yum install centos-release-scl源…

活动报名| 探索存内计算的未来,共话AGI时代

活动日期:2024年09月28日 下午一点到6点 地点:杭州技术转移中心 三楼路演厅 议程亮点: 存内计算技术架构以及最新趋势AGI开源项目交流存内计算实操上板体验 存内计算 ——突破物理极限的下一代算力技术 直接消除“存”“算”界限&…

【C++】10道经典面试题带你玩转二叉树

🦄个人主页:修修修也 🎏所属专栏:C ⚙️操作环境:Leetcode/牛客网 目录 一.根据二叉树创建字符串 二.二叉树的层序遍历 三.二叉树的层序遍历 II 四.二叉树的最近公共祖先 五.二叉搜索树与双向链表 六.从前序与中序遍历序列构造二叉树 七.从中序与后序遍历…

【笔记】机器学习算法在异常网络流量监测中的应用

先从一些相对简单的综述类看起,顺便学学怎么写摘要相关工作的,边译边学 机器学习算法在异常网络流量监测中的应用 原文:Detecting Network Anomalies in NetFlow Traffic with Machine Learning Algorithms Authors: Quc Vo, Philippe Ea, Os…

【雅特力AT32】I2C 配置工具Artery_I2C_Timing_Configuration的使用

功能 可以实现对主机和从机的时钟、数字滤波、模拟滤波配置。 环境安装 软件环境 Artery_I2C_Timing_Configuration.exe (附件压缩包含安装包和配置工具使用指南,需要免费自取) /*** function name:* - void i2c_init(i2c_type *i2c_x…

马尔科夫蒙特卡洛_吉布斯抽样算法(Markov Chain Monte Carlo(MCMC)_Gibbs Sampling)

定义 输入:目标概率分布的密度函数 p ( x ) p(x) p(x),函数 f ( x ) f(x) f(x) 输出: p ( x ) p(x) p(x)的随机样本 x m 1 , x m 2 , ⋯ , x n x_{m1},x_{m2},\cdots,x_n xm1​,xm2​,⋯,xn​,函数样本均值 f m n f_{mn} fmn​; 参数:收敛步数 m m m,迭代步数 n n n。 (1)初…

【Linux】常用指令(下)(内含more、less、 head、tail、date、find、grep、zip、tar以及学习笔记)

文章目录 前言1. more指令2. less指令(重要)3. head指令4. tail指令5. 管道(做到学会使用即可)6. date指令6.1 时间戳 7. cal指令8. find指令9. grep指令10. zip/unzip指令11. tar指令 前言 Linux下的常用指令终于要在本文落下帷…

如给Excel表格设置保护,防止表格被移动或删除

在日常工作和学习中,Excel表格是我们经常使用的工具之一。然而,在某些情况下,我们可能需要保护Excel工作簿的结构,防止工作表被随意移动或删除,以确保数据的完整性和安全性。下面小编就来给大家详细介绍如何在Excel中设…

J Transl Med结肠癌分子分型+简单实验

目录 技术路线 实验设计(药物敏感性) 亮点 方法 从 TCGA 和 GEO 数据库下载大量和单细胞 RNA 测序以及 CRC 的临床数据。HRGs 和 LMRGs 来自分子特征数据库。使用 R 软件包 DESeq2 进行差异表达分析。使用无监督聚类进行分子亚型。使用单变量 Cox 回…

Hbase日常运维

1 Hbase日常运维 1.1 监控Hbase运行状况 1.1.1 操作系统 1.1.1.1 IO 群集网络IO,磁盘IO,HDFS IO IO越大说明文件读写操作越多。当IO突然增加时,有可能:1.compact队列较大,集群正在进行大量压缩操作。 2.正在执行…

LSI SAS 9361-8i和SAS3008 12 gb / s PCIe 3.0 RAID 阵列卡配置

LSI SAS 9361-8i和SAS3008 12 gb / s PCIe 3.0 RAID 阵列卡配置 开机,BIOS自检,可以看到设备硬盘信息,以及提示CtrlR进入Raid卡配置界面。 按CtrlR进入Raid卡配置界面,一般来说使用CtrlR进入Raid卡配置界面的Raid卡配置都通用。 …

MySQL—多表操作详解

在 MySQL 中,多表操作通常涉及联接(JOIN)和子查询(Subquery),用于处理来自多个表的数据。 约束分类 约束介绍 约束:用于对数据库表中的数据进行限定,确保数据的正确性、有效性和完…

多普云(DPGO)注册机 贴近摄影测量航线规划软件

一、贴近摄影测量技术 贴近摄影测量,针对精细化测量需求提出的全新摄影测量技术,它是精细化对地观测需求与旋翼无人机发展结合的必然产物。 贴近摄影测量是面向对象的摄影测量,它以物体的“面”为摄影对象,通过贴近摄影获取超高分…

U盘格式化了怎么办?这4个工具能帮你恢复数据。

如果你思维U盘被格式化了,也不用太过担心,其实里面的数据并没有被删除,只是被标记为了可覆盖的状态。只要我们及时采取正确的数据恢复措施,就有很大的机会可以将数据找回。比如使用专业得的数据恢复软件,我也可以跟大家…

Undet for sketchup 2023.3注册机 支持草图大师sketchup2021-2022-2023

1.Undet for sketchup 2023.3支持草图大师sketchup2021-2022-2023。支持机载雷达扫描、车载扫描还是地面扫描,对AEC行业用户来说,真正需要的是如何将这些数据快速处理为三维模型,这样才能将这些信息延展到BIM领域发挥效用。因此面对这些海量的…

c++ 类中特殊成员函数

作业&#xff1a; 仿照string类&#xff0c;自己手动实现 My_string&#xff0c;分文件编译 fun.h代码 #ifndef FUN_H #define FUN_H#include <iostream>using namespace std;class My_string { private:char *ptr; // 指向字符数组的指针int size; // 字符串的最大…

成都睿明智科技有限公司电商服务引领品牌跃升

在当今这个数字化浪潮汹涌的时代&#xff0c;抖音电商以其独特的魅力迅速崛起&#xff0c;成为众多品牌商家竞相追逐的新战场。在这片充满机遇与挑战的领域中&#xff0c;成都睿明智科技有限公司以其专业的抖音电商服务&#xff0c;成为了众多商家信赖的伙伴。今天&#xff0c;…