登录/注册

STM32单片机引脚置高

STM32单片机引脚置高

更多

在STM32单片机中将GPIO引脚置高(输出高电平)的步骤如下(以标准外设库和HAL库为例):


1. 标准外设库方法

#include "stm32f10x.h" // 根据型号选择头文件

void Pin_SetHigh(void) {
    // 使能GPIO时钟(以GPIOA为例)
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);

    // 配置引脚(以PA5为例)
    GPIO_InitTypeDef GPIO_InitStruct;
    GPIO_InitStruct.GPIO_Pin = GPIO_Pin_5;       // 选择引脚5
    GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP; // 推挽输出模式
    GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;// 速度50MHz
    GPIO_Init(GPIOA, &GPIO_InitStruct);          // 初始化GPIOA

    // 置高引脚
    GPIO_SetBits(GPIOA, GPIO_Pin_5); // 将PA5置高
}

// 注:若需置低,使用GPIO_ResetBits(GPIOA, GPIO_Pin_5);

2. HAL库方法

#include "stm32f1xx_hal.h" // 根据型号选择头文件

void Pin_SetHigh(void) {
    // 使能GPIO时钟(HAL中通常在初始化时自动使能)
    __HAL_RCC_GPIOA_CLK_ENABLE(); // 使能GPIOA时钟

    // 配置引脚(以PA5为例)
    GPIO_InitTypeDef GPIO_InitStruct = {0};
    GPIO_InitStruct.Pin = GPIO_PIN_5;          // 引脚5
    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; // 推挽输出
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; // 高速
    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);     // 初始化GPIOA

    // 置高引脚
    HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_SET); // PA5置高
}

// 注:若需置低,使用HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_RESET);

3. 寄存器直接操作(高效但可读性差)

// 置高PA5(适用于STM32F1系列)
GPIOA->BSRR = GPIO_BSRR_BS5; // 使用BSRR寄存器原子操作

// 等效于:
// GPIOA->ODR |= (1 << 5);   // 直接操作ODR寄存器(需注意多线程风险)

关键点说明

  1. 时钟使能:STM32外设需先使能时钟才能操作(通过RCC寄存器)。
  2. 输出模式:必须配置为输出模式(推挽/开漏)。
  3. 引脚选择:替换GPIO_Pin_5GPIOA为目标引脚(如GPIOBGPIOC等)。
  4. 高低电平
    • 置高:GPIO_SetBits()(库) / BSRR寄存器(寄存器)
    • 置低:GPIO_ResetBits()(库) / BRR寄存器(寄存器)

示例场景

若需点亮LED(LED正极接PA5,负极接GND):

// 初始化后调用
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_SET); // LED亮

注意:不同STM32系列(F1/F4/H7等)的时钟配置或寄存器名称略有差异,请参考对应《参考手册》和标准库/HAL库头文件。

stm32单片机引脚介绍及功能

STM32系列单片机是STMicroelectronics(意法半导体)推出的一款基于ARM Cortex-M内核的32位微控制器。STM32

2024-09-02 09:38:03

STM32单片机常用的引脚及功能

单片机中,引脚是连接外部设备和单片机内部模块的接口,通过引脚可以将输入信

2023-12-07 16:22:07

STM32单片机引脚介绍及功能 STM32单片机的工作原理和基本组成

  STM32单片机引脚分为两种类型:GPIO引脚和其他

2023-08-09 16:52:07

野火stm32单片机指南者原理图下载

野火stm32单片机指南者原理图下载

资料下载 jf_27772344 2022-01-18 15:11:41

基于STM32单片机的智能灯电路图设计

基于STM32单片机的智能灯电路图设计

资料下载 yuu_cool 2021-07-30 10:21:24

基于STM32F407ZGT6单片机引脚核心板

基于STM32F407ZGT6单片机的引脚核心板

资料下载 kylefa 2021-06-30 09:13:06

STM32单片机网络远程升级固件的源码下载

STM32单片机网络远程升级固件的源码下载

资料下载 罗程123 2021-04-17 09:27:26

51单片机STM32单片机有哪些区别

大部分朋友可能都知道51单片机和stm32单片机也知道一般入门会先学习51单片机

资料下载 417804 2019-08-13 17:32:00

单片机STM32引脚模式设置

单片机STM32的引脚有多种方式可以选择。

2023-07-03 16:42:47

STC和STM32程序通用吗 stm32单片机引脚介绍及功能

STM32单片机的引脚分为多个不同的引脚组,每个

2023-04-12 13:27:37

全方位对比STM32单片机和51单片机

萌新初入单片机领域,常会遇到STM32和51单片机两大种类,无法选择其一来提升技术,也不确定哪个

2023-03-02 14:18:19

stm32单片机和51单片机区别是什么

单片机也就是单片微型计算机,和集CPU、RAM、ROM、输入输出设备、中断系统在同一个芯片上的器件。 stm32

2021-08-19 18:21:18

stm32单片机引脚介绍及功能

stm32是一种ARM Cortex-M内核单片机,下面小编为大家介绍一下单片机引脚

2021-08-19 16:50:15

STM32和51单片机如何选择

STM32是性价比非常高的32位单片机,片上资源丰富、性价比高、性能不错;而C51单片

2020-03-08 11:27:26

单片机引脚图及引脚功能_单片机简易编程

本文着手从集成电路角度去认识单片机,主要介绍了单片机的引脚图及引脚功能,

2019-07-21 10:42:33

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