STM32中推挽输出和推挽复用输出的区别

前言

事情是这样的,最近写了个串口通信的代码,结果死活都发不出去消息,然后研究了好久发现把TX引脚的推挽输出模式改成推挽复用输出模式就正常了,于是来剖析下原理。

正文

我们先来看这一幅图
STM32中推挽输出和推挽复用输出的区别
两者的共同点都是引脚可以通过给出正反向电压来控制MOS管导通从而让引脚输出高低电平,而两者区别就在于推挽复用输出不经过输出数据寄存器(ODR)


拿usart1为例:若要实现usart1的通信功能,我们就要同时使能GPIOA和外设USART1。如果采用推挽输出,则该引脚电平直接由ODR控制而不受usart外设的控制。因此采用推挽复用输出从而绕过ODR的限制,由相应的外设模块控制。


官方的参考手册也明确给出使用USASRT外设时需要采用推挽复用输出
STM32中推挽输出和推挽复用输出的区别

参考资料

STM32中文参考手册

上一篇:stm32使用DAP下载程序


下一篇:stm32 时钟周期、机器周期、指令周期