那我们就进入本文正题吧!单片机如何输出高电平?推挽输出和开漏输出最本质的区别是什么?
如果我们想点亮一个LED,只需要让单片机输出一个高电平就可以了。那么单片机是如何控制它输出高电平的呢?以STM32为例。
大家可以看一下单片机引脚内部结构图,这个是它内部的输出电路,两个二极管只是起到保护作用。
有4种输出模式
1.推挽输出
2.开漏输出
3. 多路复用推挽输出
4. 复用开漏输出
首先说一下推挽输出,后面的输出由寄存器控制,它的值为0或者1,我们编程的时候直接读写寄存器里面的值就可以了。比如我们要输出高电平,就让P-MOS导通,N-MOS截止,这样输出电压就是电源电压VDD。如果你接一个LED灯,它就亮了。视频刚开始那个点亮的LED就是推挽工作方式,如果你想让它输出低电平,就让P-MOS导通,N-MOS截止,这样就相当于引脚直接接地了,所以输出的是低电平。
,开漏输出时,P-MOS始终截止,N-MOS导通时,输出低电平。
当N-MOS截止时,输出高阻状态,这是因为两个晶体管都处于截止状态,其阻值可以看作无穷大。