使用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引脚输入配置
热门推荐
烫伤结痂处理及护理方法
初中历史——明朝的统治
唐太宗李世民的书法艺术成就
野生动物:原始森林的守护者
保持健康生活的20个小秘诀
新生儿必备用品清单及选购指南:爱的呵护,从细节开始!
六一儿童节消费指南:儿童用品选购全攻略
探秘云南:西双版纳至香格里拉的距离与沿途风光
江苏低分捡漏本科:常熟理工&金陵科技
高考成绩出炉,如何缓解填志愿焦虑?
华中科技大学团队突破钙钛矿电池效率瓶颈,全湿法制备实现25%转换效率
诺大&华科大联手突破钙钛矿电池技术瓶颈
钙钛矿电池:光伏界的明日之星?
走进大美淮安区,探寻历史文化名城
梦兆死亡之谜揭秘
长白山水獭:森林里的顶级捕食者
亚马逊雨林:地球之肺的生态危机
了解发质类型:选择适合你的洗护产品
西北大学新突破:钙钛矿太阳能电池商业化加速
黄维院士团队钙钛矿LED再创纪录!外量子效率突破30%
钙钛矿太阳能电池:新能源变革中的黑马
解析视同缴费年限的认定原则与操作流程
淮山的功效与作用、禁忌和食用方法
尿微量白蛋白80需要治疗吗
世界肾脏日:糖衣炮弹——糖尿病肾病知多少
孕期可以吃麻辣烫吗
低温也会烫伤?别让“暖冬好物”变成“皮肤杀手”
锂电和光伏:2024年新能源材料投资新宠
钙钛矿太阳能电池迎来重大突破,产业化进程加速推进
锂电池材料:全球新能源产业的“心脏”