0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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);
    }
}

关键点说明:

  • 推挽输出(Output PP):可直接输出高/低电平,驱动LED、继电器等。
  • 开漏输出(Output OD):需外部上拉电阻,适用于电平转换。
  • 速度选择
    GPIO_SPEED_FREQ_LOW(低速)
    GPIO_SPEED_FREQ_MEDIUM(中速)
    GPIO_SPEED_FREQ_HIGH(高速)
    根据信号频率要求选择(高频信号选高速)。

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

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

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

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

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

在基于STM32控制器的嵌入式系统开发中,GPIO(GeneralPurposeInput/Output)控制是其中最基本、最常见的操作之一。通过使用STM32的HAL库,可以轻松地对GPIO进行配置和控制。本文将演示如何使用STM32HAL库进行GPIO控制,并提供一个简单的LED控制的实例。

2023-12-21 15:22:16

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

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

2020-10-19 12:13:22

STM32-GPIO详解

GPIO是通用输入输出端口的简称,简单来说就是STM32控制的引脚,STM32芯片的GPIO引脚与外部设备连接起来,从而实现与外部通讯、控制以及数据采集的功能。STM32芯片的GPIO被分成很多组,每组有16个引脚,所有的GPIO引脚都有基本的输入输出功能。

2023-03-29 09:43:22

STM32GPIO工作原理详解

STM32GPIO介绍 STM32引脚说明 GPIO是通用输入/输出端口的简称,是STM32控制的引脚。GPIO的引脚与外部硬件设备连接,可实现与外部通讯、控制外部硬件或者采集外部硬件数据的功能

2020-12-18 15:36:57

STM32使用GPIO配置的5种方式

STM32使用GPIO配置的5种方式 STM32是常见的一种微控制器,其GPIO模块可以实现对外部设备的控制和数据传输,包括数字I/O口、模拟输入口和输出口等。在STM32中,GPIO模块的配置可以

2023-10-26 17:42:45

STM32GPIO使用

分享本文,介绍STM32GPIO使用。

2020-09-03 09:28:45

STM32GPIO电路原理详解

GPIO是通用输入/输出端口的简称,是STM32控制的引脚。GPIO的引脚与外部硬件设备连接,可实现与外部通讯、控制外部硬件或者采集外部硬件数据的功能。

2023-04-11 09:38:17

STM32 GPIO的工作模式

在之前围绕STM32GPIO的基本结构进行了介绍,图1为STM32的5V容忍的GPIO口内部基本结构图,图2为GPIO的基本结构中各个模块部分的概述。

2023-04-14 10:40:14

stm32 GPIO中断配置教程

在嵌入式开发中,STM32控制器因其高性能和丰富的外设而广受欢迎。GPIO(通用输入/输出)中断是STM32控制器中常用的功能之一,它允许开发者在特定引脚上检测到外部信号变化时快速响应。 1.

2024-11-19 15:53:38

STM32 GPIO的八种工作模式

GPIO (general purpose input output)是通用输入输出端口的简称,简单来说就是软件可控制的引脚,STM32芯片的GPIO引脚与外部设备连接起来,从而实现与外部通讯、控制以及数据采集的功能。

2024-11-06 09:40:46

STM32的八种GPIO工作方式详解

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

2018-12-30 16:44:00

STM32GPIO介绍及电路图讲解

  GPIO是通用输入/输出端口的简称,是STM32控制的引脚。GPIO的引脚与外部硬件设备连接,可实现与外部通讯、控制外部硬件或者采集外部硬件数据的功能。

2023-02-02 16:52:06

STM32GPIO工作方式与基本结构

GPIO是通用输入/输出端口的简称,是STM32控制的引脚。GPIO的引脚与外部硬件设备连接,可实现与外部通讯、控制外部硬件或者采集外部硬件数据的功能。

2022-07-11 10:08:53

STM32 GPIO的基本结构

STM32中,所有GPIO都是挂在APB2这个总线上面的;

2023-10-24 09:24:46

STM32 GPIO结构图讲解 STM32中上拉电阻或下拉电阻的作用

STM32中的GPIO为例,如上图是GPIO的结构图。另外关于GPIO工作原理,请移步此文:STM32GPIO工作原理详解。

2023-08-06 16:55:40

STM32 GPIO的基本结构

万物皆有源头,大家学习单片机的源头操作就是通过GPIO口点灯,GPIO作为STM32最基础的外设,也是大家最先接触的外设。 当然,看似基础的GPIO,不仅仅是简单的设置好IO口,让灯亮起就一了百了,了解清楚GPIO的使用特性,根本原理、运行机制对我们在涉及到GPIO的相关设计操作上会应用的更加自如。

2023-04-14 10:38:55

关于STM32GPIO配置不同输出速度会有什么影响?

STM32GPIO配置不同输出速度会有什么影响?

2020-03-01 11:53:48

STM32单片机的GPIO输入、输出模式与配置方法

STM32 单片机是一款高性能、低功耗的 32 位微控制器,具有强大的计算能力、灵活的外设模块和实现微控制器应用所需的社区支持。在单片机应用中,GPIO 输入输出模式是必不可少的硬件接口之一。本文将介绍 STM32 单片机的 GPIO 输入、输出模式与配置方法。

2023-08-15 18:23:00

STM32GPIO在实际开发设计的使用配置和技巧

一、前言 本篇开始对STM32GPIO在实际开发设计中的使用配置和技巧进行探讨,可以先去回顾下之前介绍的GPIO的相关理论基础知识包括基本结构,工作模式和寄存器原理。 了解过STM32GPIO

2023-06-22 10:22:00

STM32 GPIO的API函数配置和使用技巧

本篇开始对STM32GPIO在实际开发设计中的使用配置和技巧进行探讨,可以先去回顾下之前介绍的GPIO的相关理论基础知识包括基本结构,工作模式和寄存器原理。

2023-04-14 10:46:46

STM32 GPIO寄存器的相关知识

在之前的STM32GPIO理论基础知识中,分别对基本结构和工作模式进行了详细的介绍。 GPIO基本结构中主要对GPIO内部的各个功能电路逐一的进行的分析; GPIO工作模式中主要介绍GPIO应用在不同的使用场景下,GPIO端口的静态特征配置和动态的工作模式,同时对信号的工作流进行了分析。

2023-04-14 10:43:08

STM32CUBEMX(4)--GPIO输出

本篇文章主要介绍如何使用STM32CubeMX对红外波形进行GPIO输出,并LED显示。

2022-11-14 15:43:19

STM32芯片的GPIO简介

GPIO被分成很多组,每组有16个引脚,所有的GPIO引脚都有基本的输入输出功能。最基本的输出功能是由STM32控制引脚输出高、低电平,实现开关控制,如把GPIO引脚接入LED灯,那就可以控制LED灯的亮灭,引脚接入到继电器或三极管,那就可以通过继电器或三极管控制外部大功率电路的...

hfgdf 2021-12-01 07:06:38

STM32单片机的八种GPIO口模式

GPIO 是通用输入/输出端口的简称,本文以STM32为例进行说明,其他的单片机功能上都是大同小异,学会STM32GPIO,我们可以触类旁通。

2023-09-07 11:38:01

STM32F0xx_ GPIO配置详细过程

STM32F0xx_GPIO配置详细过程

2020-04-08 09:31:31

STM32F103 GPIO内部电路图讲解

STM32F103 GPIO内部电路图讲解

2023-02-01 16:32:14

STM32GPIO操作配置和使用方法

本篇开始对STM32GPIO在实际开发设计中的使用配置和技巧进行探讨,可以先去回顾下之前介绍的GPIO的相关理论基础知识包括基本结构,工作模式和寄存器原理。

2023-07-07 16:50:12

一文快速理解STM32中的上/下拉电阻

STM32中的GPIOSTM32中的GPIO为例,如上图是GPIO的结构图。 从上图中标号2处可以看到,上拉和下拉电阻上都有一个开关,通过配置上下拉电阻开关,可以控制引脚的默认电平,这里有三种

2021-11-02 10:11:05

STM32的8种GPIO模式理解

最近在看数据手册的时候,发现STM32GPIO输入输出模式的配置种类有8种之多

2023-08-04 14:53:04

STM32 GPIO的外部中断设计

在之前针对STM32GPIO相关API函数及配置使用进行了详细的介绍,GPIO作为输入引脚时,调用相关读信号引脚函数接口就可以在程序的循环中,轮询的对输入信号进行读取检测操作,除了轮询的方式访问

2023-04-14 10:51:53

加载更多
相关标签