登录/注册

STM32 开关控制GPIO

STM32 开关控制GPIO

更多

在STM32中,控制GPIO的开关(输出高低电平)需经过以下步骤,以HAL库为例(适用于STM32CubeIDE环境):


1. 使能GPIO时钟

任何外设使用前必须先使能时钟:

   __HAL_RCC_GPIOA_CLK_ENABLE();  // 使能GPIOA时钟(以PA引脚为例)

2. 配置GPIO为输出模式

初始化引脚为推挽输出:

   GPIO_InitTypeDef GPIO_InitStruct = {0};
   GPIO_InitStruct.Pin   = GPIO_PIN_5;           // 选择引脚(例如PA5)
   GPIO_InitStruct.Mode  = GPIO_MODE_OUTPUT_PP;   // 推挽输出模式
   GPIO_InitStruct.Pull  = GPIO_NOPULL;           // 无上下拉电阻
   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;   // 输出速度(根据需求调整)
   HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);        // 初始化GPIOA

3. 控制GPIO开关状态

通过HAL_GPIO_WritePin()控制电平:

   // 开启(高电平)
   HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_SET);

   // 关闭(低电平)
   HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_RESET);

4. 完整示例代码(控制PA5引脚)

#include "stm32f1xx_hal.h"  // 根据芯片型号选择头文件(如stm32f4xx_hal.h)

void main(void) {
    HAL_Init();                              // 初始化HAL库
    SystemClock_Config();                    // 配置系统时钟(由CubeMX生成)

    // 1. 使能GPIOA时钟
    __HAL_RCC_GPIOA_CLK_ENABLE();

    // 2. 配置PA5为输出
    GPIO_InitTypeDef GPIO_InitStruct = {0};
    GPIO_InitStruct.Pin   = GPIO_PIN_5;
    GPIO_InitStruct.Mode  = GPIO_MODE_OUTPUT_PP;
    GPIO_InitStruct.Pull  = GPIO_NOPULL;
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

    while (1) {
        HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_SET);   // 开启
        HAL_Delay(500);                                       // 延时500ms
        HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_RESET); // 关闭
        HAL_Delay(500);
    }
}

关键点说明:


替代方案:直接操作寄存器(高效但不跨平台)

// 开启PA5(高电平)
GPIOA->BSRR = GPIO_BSRR_BS5;   // 置位寄存器

// 关闭PA5(低电平)
GPIOA->BSRR = GPIO_BSRR_BR5;   // 复位寄存器

提示:建议使用HAL库确保代码可移植性。实际开发中可用STM32CubeMX工具自动生成初始化代码。

stm32 GPIO中断配置教程

在嵌入式开发中,STM32微控制器因其高性能和丰富的外设而广受欢迎。GPIO(通用输入/输出)中断是

2024-11-19 15:53:38

使用STM32 HAL库进行GPIO控制的实例

在基于STM32微控制器的嵌入式系统开发中,GPIO(GeneralPurposeInput/Output)

2023-12-21 15:22:16

STM32使用GPIO配置的5种方式

STM32使用GPIO配置的5种方式 STM32是常见的一种微控制器,其

2023-10-26 17:42:45

STM32GPIO配置

STM32微控制器通用输入/输出引脚(GPIO)提供许多与应用框架内外部电路相连接的方法。本应用笔记提供有关

资料下载 zq1943 2023-08-31 10:50:55

STM32GPIO电路原理

GPIO是通用输入/输出端口的简称,是STM32可控制的引脚。GPIO的

资料下载 佚名 2022-02-08 15:35:14

6 . STM32 GPIO介绍

GPIO是什么?GPIO (general purpose intput output) ,是通用输入输出端口的简称,可以通过软件来控制其输入和

资料下载 佚名 2021-12-24 19:08:09

STM32-GPIO

的GPIO被分成很多组,每组有16个引脚,所有的GPIO引脚都有基本的输入输出功能。最基本的输出功能是由STM32

资料下载 王树林 2021-11-22 19:51:07

概述STM32GPIO的8种工作模式

概述STM32中GPIO的8种工作模式

资料下载 佚名 2020-07-06 17:35:40

STM32 GPIO的工作模式

在之前围绕STM32的GPIO的基本结构进行了介绍,图1为STM32的5V容忍的GPI

2023-04-14 10:40:14

STM32GPIO电路原理详解

GPIO是通用输入/输出端口的简称,是STM32可控制的引脚。GPIO的

2023-04-11 09:38:17

STM32-GPIO详解

GPIO是通用输入输出端口的简称,简单来说就是STM32可控制的引脚,STM32

2023-03-29 09:43:22

STM32GPIO介绍及电路图讲解

  GPIO是通用输入/输出端口的简称,是STM32可控制的引脚。GPIO

2023-02-02 16:52:06

STM32GPIO工作原理详解

STM32的GPIO介绍 STM32引脚说明 GPIO是通用输入/输出端

2020-12-18 15:36:57

STM32 GPIO实现与外部通讯、控制以及数据采集方案介绍

的GPlO引脚都有基本的输入输出功能。 最基本的输出功能是由STM32控制引脚输出高、低电平,实现开关

2020-10-19 12:13:22

STM32GPIO使用

分享本文,介绍STM32的GPIO使用。

2020-09-03 09:28:45

7天热门专题 换一换
相关标签