|

kbwltiohw5w640905021.gif
1 t- Q. D( m& Q1 }+ K) x S在STM32中,推挽输出(Push-Pull Output)和复用推挽输出(Alternate Function Push-Pull)是GPIO的两种工作模式,它们的核心区别在于引脚的用途和控制权。
; a: G; P& G; v% }" d7 A1. 推挽输出(Push-Pull Output)用途:通用GPIO输出模式,由用户直接控制引脚电平。控制权:用户通过操作GPIO的输出数据寄存器(如GPIOx_ODR)控制高低电平。配置方式:GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; // 推挽输出模式特点:引脚可以主动输出高电平(上拉PMOS导通)或低电平(下拉NMOS导通)。驱动能力强,适合驱动LED、继电器等外设。用户需手动操作GPIO寄存器(如HAL_GPIO_WritePin())。2. 复用推挽输出(Alternate Function Push-Pull)用途:将引脚分配给特定外设(如SPI、I2C、UART等),由外设硬件自动控制。控制权:外设模块(如USART、TIMER)自动控制引脚电平,用户无需手动操作GPIO。配置方式:GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; // 复用推挽模式
5 l+ z6 z( a* E/ A. o5 VGPIO_InitStruct.Alternate = GPIO_AFx_USART1; // 选择复用功能(如USART1)特点:引脚电平由外设硬件自动生成(如UART发送数据时自动输出高低电平)。用户需配置外设参数(如波特率、时钟频率),而非直接操作GPIO。必须与对应的外设功能绑定(如PA9映射为USART1_TX)。核心区别总结特性推挽输出(Push-Pull)复用推挽输出(Alternate Function Push-Pull)控制权用户通过代码直接控制由外设硬件自动控制(如USART、SPI)应用场景通用IO控制(LED、按键等)外设通信(UART发送、SPI时钟信号等)配置重点设置GPIO为输出模式绑定复用功能和外设参数(Alternate Function)代码操作HAL_GPIO_WritePin()外设初始化(如HAL_UART_Init())示例场景推挽输出:
# m8 M7 ?& f: W7 L# P控制LED闪烁:+ H8 j; J* t- G/ }" Q9 C
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_SET); // PA5输出高电平复用推挽输出:# I+ X) ^# n: s8 F, `
配置USART1发送数据(PA9为USART1_TX):
/ w3 H" F. U8 @$ B3 E// 初始化GPIO为复用推挽模式
$ h* e. l6 i- `/ h0 TGPIO_InitStruct.Pin = GPIO_PIN_9;
) S* _0 d, c! O( w+ PGPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
% c% u9 _8 ^9 q# s) yGPIO_InitStruct.Alternate = GPIO_AF7_USART1; // 绑定USART1功能, H& f6 a( h% x0 T7 m. r* S
// 初始化USART外设
: ?8 {& t$ J. vHAL_UART_Transmit(&huart1, data, len, timeout); // 数据由硬件自动发送
0 ?1 p% E8 w$ f! V' o[/ol]常见问题复用推挽是否需要使能外设时钟?
9 ?. E$ X/ {5 @# r& `% h是的!需同时使能GPIO和外设的时钟(如__HAL_RCC_USART1_CLK_ENABLE())。推挽和开漏输出的区别?
8 t& N7 h3 b; h1 H* C5 u推挽可输出高/低电平,开漏(Open-Drain)只能输出低电平或高阻态,需外部上拉电阻。如何查找引脚的复用功能?8 h; I2 Z: H" X: R
参考STM32芯片数据手册的Alternate Function Mapping表格。
1 h. @; y; F- O1 d0 [[/ol] . |2 J- c$ ?- N9 b
声明:
) J. a+ i6 b- A本文转载自Passion嵌入式公众号,如涉及作品内容、版权和其它问题,请联系工作人员微(13237418207),我们将在第一时间和您对接删除处理!投稿/招聘/广告/课程合作/资源置换请加微信:13237418207
/ ]3 q( j' \( x% g* U1 A6 ^* b8 b! Q; q, B
mprms23pkan640905121.jpg
7 O0 Y9 @+ g, Y
【初学者必备】50份pcb设计DFM可制造性分析资料3 F! ]% K; Q! T H7 n
; `" T7 v: i: s y% k9 I* [6 [
jr1btygci4p640905221.jpg
" o+ }1 P# L. [. W* X
阻抗、电抗、容抗和感抗的区别和联系,你真的懂吗?5 `, k% I7 W8 A, o
" Z) f$ ^0 r* o! N: ?# q) r
ill1xvyv0dh640905321.jpg
9 p- V/ C6 F5 |# |
7个维度解析电源损耗:同步Buck,为何Vin越小,电源效率越高?5 Z, o- {: p5 b. M4 ~, E8 v
$ w8 }+ R1 N2 H+ K* D
! E3 Y6 i% Z* {5 ^* ^6 z# r: }( p' m5 k, k: D
j1ji4kmr5c5640905421.png
; }( n( J2 x. ~: g. _
扫码添加客服微信,备注“入群”拉您进凡亿教育官方专属技术微信群,与众位电子技术大神一起交流技术问题及心得~
* y3 o! H7 p4 n! o分享 点赞 在看?? “三连”支持! |
|