单片机
返回首页

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输入的电压是不是低电平

        


进入单片机查看更多内容>>
相关视频
  • 【TI MSPM0 应用实战】智能小车+工业角度编码器+血氧仪+烟雾探测器!硬核参考设计详解!

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

  • 直播回放: Microchip Timberwolf™ 音频处理器在线研讨会

  • 基于灵动MM32W0系列MCU的指夹血氧仪控制及OTA升级应用方案分享

精选电路图
  • 1瓦线性调频增强器

  • 家用电器遥控器

  • 12V 转 28V DC-DC 变换器(基于 LM2585)

  • 红外开关

  • DS1669数字电位器

  • HA1377 桥式放大器 BCL 电容 17W(汽车音频)

    相关电子头条文章