错题集第⼆章
1.单片机IO⼝开漏输出和推挽输出有什么区别?
**开漏输出:**开漏输出只能输出低电平,如果要输出⾼电平必须通过上拉电阻才能实现。就类似于三
极管的集电极输出。
**推挽输出:**推挽输出既可以输出低电平,也可以输出⾼电平,可以直接驱动功耗不⼤的数字器件。
导通损耗⼩、效率⾼、既提⾼电路的负载能⼒,⼜提⾼开关速度。
拓展:STM32的8种GPIO输入输出模式
①浮空输入:浮空输入模式下,I/O端⼝的电平信号直接进入输入数据寄存器。也就是说,I/O的电平状
态是不确定的,完全由外部输入决定;如果在该引脚悬空(在⽆信号输入)的情况下,读取该端⼝的电
平是不确定的。
②上拉输入:上拉输入模式下,I/O端⼝的电平信号直接进入输入数据寄存器。但是在I/O端⼝悬空(在
⽆信号输入)的情况下,输入端的电平可以保持在⾼电平;并且在I/O端⼝输入为低电平的时候,输入端
的电平也还是低电平。
③下拉输入:下拉输入模式下,I/O端⼝的电平信号直接进入输入数据寄存器。但是在I/O端⼝悬空(在
⽆信号输入)的情况下,输入端的电平可以保持在低电平;并且在I/O端⼝输入为⾼电平的时候,输入端
的电平也还是⾼电平。
④模拟输入:模拟输入模式下,I/O端⼝的模拟信号(电压信号,⽽非电平信号)直接模拟输入到片上外
设模块,比如ADC模块等等。
**⑤开漏输出:**开漏输出模式下,通过设置位设置/清除寄存器或者输出数据寄存器的值,途经N-MOS
管,最终输出到I/O端⼝。这⾥要注意N-MOS管,**当设置输出的值为⾼电平的时候,N-MOS管处于关
闭状态,此时I/O端⼝的电平就不会由输出的⾼低电平决定,⽽是由I/O端⼝外部的上拉或者下拉决定;
当设置输出的值为低电平的时候,N-MOS管处于开启状态,此时I/O端⼝的电平就是低电平。**同时,
I/O端⼝的电平也可以通过输入电路进⾏读取;注意,I/O端⼝的电平不⼀定是输出的电平。
**⑥开漏复⽤输出:**输出的⾼低电平的来源,不是让CPU直接写输出数据寄存器,取⽽代之利⽤片上
外设模块的复⽤功能输出来决定的。
**⑦推挽输出:**推挽输出模式下,通过设置位设置/清除寄存器或者输出数据寄存器的值,途经P-MOS
管和N-MOS管,最终输出到I/O端⼝。这⾥要注意P-MOS管和N-MOS管,当设置输出的值为⾼电平的时
候,P-MOS管处于开启状态,N-MOS管处于关闭状态,此时I/O端⼝的电平就由P-MOS管决定:⾼电
平;当设置输出的值为低电平的时候,P-MOS管处于关闭状态,N-MOS管处于开启状态,此时I/O端⼝
的电平就由N-MOS管决定:低电平。同时,I/O端⼝的电平也可以通过输入电路进⾏读取;注意,此时
I/O端⼝的电平⼀定是输出的电平。
2.单片机⾥定时器有什么作⽤和优势?
①作⽤:计数,延时,输入捕获,输出比较(输出PWM),产⽣中断
②优势:不需要CPU参与,精确