单片机怎么输出高电平!推挽输出和开漏输出最本质的区别?
如果我们要点亮一颗LED灯,只需要让这个单片机输出高电平就可以了,那么单片机内部都是怎么控制它输出高电平的呢?以STM32为例,
如果我们要点亮一颗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截止时,它输出的是高阻态。这是因为这两个晶体管都是截止状态,它的电阻可以看做无穷大。