登录/注册

stm32管脚复用设置

更多

在STM32微控制器中,管脚复用(Pin Alternate Function)的配置是实现GPIO多功能复用的关键步骤。以下是配置流程的中文说明:


1. 基本概念

STM32的GPIO引脚可通过复用功能(Alternate Function, AF)切换为外设功能(如USART、SPI、I2C等)。每个引脚支持的复用功能需查阅芯片的数据手册(Datasheet)引脚分配表(Pinout Diagram)


2. 配置步骤

(1) 开启时钟

(2) 配置GPIO模式

将GPIO设置为复用模式(Alternate Function Mode),并选择推挽/开漏等输出类型:

GPIO_InitTypeDef GPIO_InitStruct = {0};
GPIO_InitStruct.Pin = GPIO_PIN_9 | GPIO_PIN_10;  // 例如:PA9(TX)、PA10(RX)
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;         // 复用推挽输出(TX)
// GPIO_InitStruct.Mode = GPIO_MODE_AF_INPUT;   // 复用输入(RX,部分情况)
GPIO_InitStruct.Pull = GPIO_NOPULL;             // 无上拉/下拉
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;   // 速度
GPIO_InitStruct.Alternate = GPIO_AF7_USART1;    // 复用功能编号(见数据手册)
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

(3) 外设复用功能映射

(4) 使能外设

配置外设本身(如USART、SPI)的参数并启用:

// 示例:配置USART1(HAL库)
UART_HandleTypeDef huart1;
huart1.Instance = USART1;
huart1.Init.BaudRate = 115200;
huart1.Init.WordLength = UART_WORDLENGTH_8B;
huart1.Init.StopBits = UART_STOPBITS_1;
huart1.Init.Parity = UART_PARITY_NONE;
HAL_UART_Init(&huart1);

3. 关键注意事项

  1. 复用功能编号(Alternate Function Number)
    不同引脚支持的复用功能编号(如AF0~AF15)需查阅芯片手册(如STM32F4的AF表在《参考手册》的GPIO章节)。

  2. 时钟使能优先级
    先开启GPIO和外设时钟,再进行外设初始化。

  3. 工具辅助
    使用STM32CubeMX工具可自动生成复用配置代码,避免手动查表错误。

  4. 冲突检查
    确保同一引脚未被多个外设或功能占用。


4. 示例:配置PA9/PA10为USART1

// 开启时钟
__HAL_RCC_GPIOA_CLK_ENABLE();
__HAL_RCC_USART1_CLK_ENABLE();

// 配置PA9(TX)为复用推挽输出
GPIO_InitStruct.Pin = GPIO_PIN_9;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Alternate = GPIO_AF7_USART1;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

// 配置PA10(RX)为复用输入
GPIO_InitStruct.Pin = GPIO_PIN_10;
GPIO_InitStruct.Mode = GPIO_MODE_AF_INPUT;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

// 初始化USART1
HAL_UART_Init(&huart1);

通过以上步骤,可实现STM32管脚复用功能的正确配置。建议结合具体芯片型号的文档进行验证。

请问STM32G071KBT6的program管脚PA13和boot0管脚PA14可以复用为普通IO吗?

请问STM32G071KBT6的program管脚PA13和boot0管脚PA14可以

2024-05-20 06:08:49

谈一谈STM32单片机端口复用和端口重映射

STM32单片机端口复用和端口重映射STM32单片机上有很多I/O口,也有很多的内置外设,比如I2C、ADC、DAC、USART等都属于内置外设

2022-02-22 08:18:02

STM32F103C8T6管脚复用功能有哪些

技能会随着经验的积累不断提升的!STM32F103C8T6的PA15,PB3,PB4管脚的复用功能分别是:PA15/JTDI、PB3/JTDO、

2022-01-18 09:59:35

STM32学习笔记--端口复用&重映射

GPIO 作为内置外设使用的时候,就叫做复用。可通过芯片参考手册查询哪些引脚可以复用。端口复用

资料下载 h1654155957.9921 2021-12-28 19:35:35

STM32单片机端口复用和端口重映射

STM32单片机端口复用和端口重映射STM32单片机上有很多I/O口,也有很多的内置外设,比如I2C、ADC、DAC、USART等都属于内置外设

资料下载 佚名 2021-12-28 19:23:11

STM32端口IO方向设置问题

STM32端口IO方向设置问题STM32端口寄存器配置STM32 的 I

资料下载 佚名 2021-11-29 13:36:08

深度解析STM32单片机JTAG的复用方法资料下载

电子发烧友网为你提供深度解析STM32单片机JTAG的复用方法资料下载的电子资料下载,更有其他相关的电路图、源代码、课件教程、中文资料、英文资料、参考设计、用户指南、解决方案等资料,希望可以帮助到广大的电子工程师们。

资料下载 张艳 2021-04-17 08:49:56

Quartus II中管脚上拉电阻应该如何设置

在使用Altera的FPGA时候,由于系统需求,需要在管脚的内部加上上拉电阻。Quartus II软件中在Assignment Editor中可以设置。具体过程如下:

资料下载 佚名 2021-01-29 16:26:51

复用核心板上的IO管脚,并设置为IO使用,请问有IO管理对照表吗?

我想复用核用板上的IO管脚,并设置为IO使用,请问有IO管理对照表吗

2022-01-13 08:55:35

怎么去设置不同的STM32 IO复用

网上一搜关于STM32的串口复用帖子挺多的,但是都是讲的GPIO复用成为UART的IO,怎么去

2022-01-07 07:59:27

如何去设置STM32 GPIO的复用功能呢

STM32GPIO有多少种复用功能呢?如何去设置STM32 GPIO的

2021-12-15 07:55:38

STM32F103ZET6端口复用设置步骤

GPIO 作为内置外设使用的时候,就叫做复用。可通过芯片参考手册查询哪些引脚可以复用。端口复用

2021-08-16 07:42:17

一文详解STM32端口复用及映射

STM32有很多的内置外设,这些外设的外部引脚都是与GPIO复用的。也就是说,一个GPIO如果可以复用为内置外设的功能引脚,那么当这个GPIO作

2020-09-23 11:02:11

C6747管脚是分时复用吗?

C6747芯片内EMIFA与MMCSD接口部分管脚是功能复用的,类似:EMA_D[1]/ MMCSD_DAT[1]/ UHPI_HD[1]/ GP0[1]EMA_D[2]/ MMCSD_DAT[2

2020-05-25 06:42:18

tm4c 1233的JTAG的TMS、TDI、TDO三个管脚设置复用后不能正常烧录程序

JTAG的TMS、TDI、TDO三个管脚在设计电路时复用到其他功能去,刚开始程序没设置

2020-04-06 11:49:54
7天热门专题 换一换
相关标签