STM32CubeMx GPIO口输出
2025-10-30 来源:bilibili
stm32用hal库建立工程通用且方便,用的人也越来越多了,正点原子之前也有hal库的书还有例程,但是正点原子hal库的例程是以调用hal库的形式制作的,没有直接从cube的建立工程开始做起,并且在使用的过程中有根据项目更改过库函数。网上STM32Cube的教程也大多是v4、v5版本,和v6相比很多界面和功能有所变化,所以写了这个。文中部分内容参考正点原子开发指南和网上的文章教程。
工作环境:
STM32CubeMXv6
Keil5
如果仅仅使用GPIO口执行输入输出的操作,那么RCC时钟,晶振,时钟树和中断都是可以不用配置使用默认的,建立工程后左键点击需要打开的IO口后选择GPIO_OUTPUT或GPIO_INPUT。

然后打开左侧的下拉框System Core,点击GPIO选项;

点击需要配置的IO口,配置Configuration中的选项:
GPIO_OUTPUT选项
GPIO output level:GPIO初始输出电平
GPIO mode:GPIO模式(开漏输出或推挽输出)
GPIO Pull-up/Pull-down:GPIO上拉/下拉电阻
Maximum output speed:输出速率
User Label:用户命名(选填)
GPIO_INPUT选项
GPIO mode:GPIO模式
GPIO Pull-up/Pull-down:GPIO上拉/下拉电阻
User Label:用户命名(选填)


点击Project Manager页面,输入工程名和工程位置,选择工具链和IDE为MDK-ARM,版本为5.27;

打开左侧Code Generater菜单勾选Generate peripheral initialization as a pair of'.c/.h'file per peripheral;

最后点击右上角的GENERATE CODE按钮后生成代码。
生成代码后打开工程文件夹,用Keil5打开工程。

编译,运行

此时已经可以点亮小灯了。
HAL_GPIO_WritePin()函数可以控制IO空输出高电平
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_RESET); //PB0 输出低电平
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_SET); //PB0 输出高电平
HAL_Delay()函数可以延时,单位ms
HAL_Delay(500); //延时500ms
通过在主函数的while循环内组合两者,连接小灯,可以达到小灯闪烁的结果
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_RESET); //PB0 输出低电平
HAL_Delay(500); //延时500ms
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_SET); //PB0 输出高电平
HAL_Delay(500); //延时500ms
此外可以通过反转电平的方式达到相同效果
HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_0); //PB0 反转输出
HAL_Delay(500); //延时500ms
HAL_GPIO_ReadPin()函数可以读取IO口电平以进行判断
if(HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_5) == RESET) //读取并判断PB5输入的电压是不是低电平
- Keil5安装+STM32CubeMX安装+VSCode辅助开发教程
- STM32CubeMX保姆级安装教程
- STM32CubeMx 串口通信(下)串口接收
- 配置CLion + STM32CubeMX开发环境
- 基于STM32CUBEMX驱动TMOS模块STHS34PF80(2)----驱动STHS34PF80进行人体检测
- 基于STM32CUBEMX驱动低压步进器电机驱动器STSPIN220(3)----定时器中断产生指定数量脉
- 基于STM32CUBEMX驱动低压步进器电机驱动器STSPIN220(2)----驱动STSPIN220
- 基于STM32CUBEMX驱动低压步进器电机驱动器STSPIN220(1)----套件概述
- STM32CUBEMX(2)--USART通过DMA方式接收不定长数据
- stm32f103 GPIO——一灯大师之I/O口输出模式的寄存器配置
- 六大全新产品系列推出,MCX A微控制器家族迎来创新
- 意法半导体全新STM32C5系列,重新定义入门级微控制器性能与价值,赋能万千智能设备
- 模组复用与整机重测在SRRC、CCC、CTA/NAL认证中的实践操作指南
- 有源晶振与无源晶振的六大区别详解
- 英飞凌持续巩固全球微控制器市场领导地位
- 使用 Keil Studio for Visual Studio Code开发 STM32 设备
- 从控制到系统:TI利用边缘AI重塑嵌入式MCU的边界
- 蓝牙信道探测技术原理与开发套件实践
- Microchip 推出生产就绪型全栈边缘 AI 解决方案,赋能MCU和MPU实现 智能实时决策
- LoRa、LoRaWAN、NB-IoT与4G DTU技术对比及工业无线方案选型分析




