使用STM32CubeMX配置GPIO引脚输出
创作时间:
作者:
@小白创作中心
使用STM32CubeMX配置GPIO引脚输出
引用
CSDN
1.
https://blog.csdn.net/Wang2869902214/article/details/142436449
STM32F103C8T6的GPIO引脚输出配置
时钟配置
在开始配置GPIO引脚之前,需要先配置系统时钟。时钟配置是STM32微控制器正常工作的重要基础,具体配置方法可以参考相关教程。
GPIO引脚选择
- 在 "输出与配置"页面下
- 大部分STM32F103C8T6最小系统板上自带一个板载PC13引脚的LED灯
- 这里引脚选择可以按照自己的情况去选择对应的引脚,这里选择了PC13引脚
- 点击PC13引脚后,可以发现他会弹出很多个选项,而这些选项就是该引脚(PC13)能够复用的所有引脚功能:
- PC13-TAMPER-RTC: 这是指PC13引脚可以被配置为与实时时钟(RTC)的篡改检测(TAMPER)功能相关联。TAMPER引脚通常用于检测外部对系统的物理篡改,当检测到篡改时,可以触发特定的安全响应。
- Reset_State: 这个选项表示初始状态(未使用)
- RTC_OUT: 这表示PC13引脚可以配置为输出RTC的某些信号,如秒脉冲、闹钟信号等。具体功能取决于RTC的配置。
- RTC_TAMPER: 与“PC13-TAMPER-RTC”类似,这是指该引脚可以作为RTC的篡改检测输入。
- GPIO_Input: 将PC13配置为通用输入引脚,用于读取外部信号的状态。
- GPIO_Output: 将PC13配置为通用输出引脚,用于控制外部设备或信号。
- GPIO_Analog: 将PC13配置为模拟输入模式,通常用于连接模拟信号源,如传感器的输出,到ADC(模数转换器)。
- EVENTUT: 这个选项可能是指该引脚可以配置为事件输出(EVENT OUT),用于生成特定的事件信号,这些信号可以触发其他硬件模块或中断。
- GPIO_EXTI13: 这表示PC13引脚可以配置为外部中断源(EXTI,External Interrupt)。当该引脚上的信号发生变化(如上升沿、下降沿或双边沿触发)时,可以触发中断,从而执行特定的中断服务程序。
选择GPIO_Output模式
- 这里选择GPIO_Output模式
- 打开GPIO选项
- 点击对应的PC13 PIN
- 下方有个 User Lable :这里相当于用户标签(重命名),生成代码后会帮你宏定义此引脚名字
- 使用用户标签的好处:如果设置了用户标签,然后在后续如果需要变换此LED引脚,只需要将变更后的引脚的用户标签改为之前的用户标签,即可不需要修改代码,重新生成代码后即可使用,因为这里的原理就是宏定义修改,所以不用代码中修改具体的引脚是哪个。于是这里设置为LED
详细GPIO Pin配置
- GPIO output level (输出电平):
- LOW: 设置引脚初始输出电平为低电平(0V)。
- High: 设置引脚初始输出电平为高电平(通常接近供电电压,如3.3V或5V)。
- GPIO mode (GPIO模式):
- Output Push-Pull (推挽输出): 这是最常见的输出模式,适用于大多数数字信号输出。在此模式下,引脚可以主动输出高电平或低电平。
- Output Open Drain (开漏输出): 在此模式下,引脚只能主动输出低电平。当引脚被设置为高电平时,它实际上是被置为高阻态(Z态),允许外部电路(如上拉电阻)将引脚拉高到高电平。开漏输出通常用于需要多个输出共享同一总线的场景,如I2C总线。
- GPIO Pull-up/Pull-down (上拉/下拉):
- No Pull-up and Pull-down (无上拉/下拉): 引脚在未被驱动时保持浮空状态,易受外部干扰。
- Pull-up (上拉): 在引脚内部连接一个上拉电阻,使引脚在未被驱动时默认保持高电平。
- Pull-down (下拉): 在引脚内部连接一个下拉电阻,使引脚在未被驱动时默认保持低电平。
- Maximum output speed (最大输出速度):
- LOW: 设置引脚输出信号的最大速度为低速。
- Medium: 设置引脚输出信号的最大速度为中速。
- High: 设置引脚输出信号的最大速度为高速。
- 输出速度的选择通常取决于所连接外设的要求以及系统时钟的配置。
- 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引脚输入配置
热门推荐
户外生存必备:《美军野外生存手册》教你做好心理准备
贝尔·格里尔斯教你从零开始户外生存
初七带娃打卡珠海长隆,开启梦幻亲子游!
白云山梅花谷:一场诗意盎然的“雪景”
当孩子告诉你他是同性恋:父母该如何应对?
i3-2100还能畅玩《英雄联盟》吗?
二甲双胍:脂肪肝治疗的新选择
二甲双胍真的伤肝?真相揭秘!
灵隐寺飞来峰:千年古刹的文化传承
正月初七“人日”,提醒:3件大事别忘了办,人旺了才能事事顺心
在徐州,喝新年里的第一碗饣它汤
SU-76M自行反坦克炮技术参数详解
苏系2.0权重SU-76M自行火炮,中期
澳洲技术移民189签证申请误区揭秘
春节打卡铜陵:犁桥水镇&永泉小镇全攻略
冬日打卡:铜陵犁桥水镇的古典园林之美
抖音2.2亿次播放的网红古镇:铜陵犁桥水镇
红旗渠风景区旅游攻略:一次不可错过的旅行体验,详细指南带你深入探索这个美丽景点
小轿车的驾驶技巧是什么?怎样提高驾驶安全性?
财神灵签:赵公明助你财运亨通!
赵公明:从鬼将到财神的传奇转变
2024年财神方位揭秘:家居风水大公开!
赏美景、品美食……“五一”去扬州这样玩!
拍出绝美冬景:洪江市玉龙湖攻略
冬日探秘:洪江古商城的魅力
李晓华带火的怀化冬游打卡地
带你了解心脏病诊断的两把利器——医生的听诊器和心脏X线摄影
揭秘:眼皮肿了的八大原因及预防方法
上眼皮浮肿的5种征兆心脏病
老年人脚软?这三款食材助你缓解症状