GPI有四种工作方式,分别为:浮空输入、上拉输入、下拉输入、模拟输入;GPO有四种工作方式,分别为:开漏输出、开漏复用功能、推挽输出、推挽复用功能。
GPI有四种工作方式,分别为:浮空输入、上拉输入、下拉输入、模拟输入;GPO有四种工作方式,分别为:开漏输出、开漏复用功能、推挽输出、推挽复用功能。
GPI的四种工作方式:
1、浮空输入
浮空输入是将I/O端口的电平信号直接进入输入数据寄存器。也就是说,I/O的电平状态是不确定的,完全由外部输入决定;如果在该引脚悬空(在无信号输入)的情况下,读取该端口的电平是不确定的。
浮空输入的最大特点就是MCU读到的引脚状态完全跟随外部IO口的电平变化,一般用于按键输入,抗干扰性能不如上拉和下拉方式;
2、上拉输入
上拉输入是将I/O端口的电平信号直接进入输入数据寄存器;但是在I/O端口悬空(在无信号输入)的情况下,输入端的电平可以保持在高电平;并且在I/O端口输入为低电平的时候,输入端的电平也还是低电平。
上拉输入抗干扰能力强,特别适合接地信号的输入;
3、下拉输入
下拉输入是将I/O端口的电平信号直接进入输入数据寄存器。但是在I/O端口悬空(在无信号输入)的情况下,输入端的电平可以保持在低电平;并且在I/O端口输入为高电平的时候,输入端的电平也还是高电平。
下拉输入模式与上拉输入模式相反,它适合有效信号为高电平值得信号接入,通过分压电阻来滤除信号毛刺,提高电平稳定性。
4、模拟输入
模拟输入是将I/O端口上的信号作为模拟信号直接输入到STM32内部的ADC上,进行采样转换。
GPO的四种工作方式:
1、开漏输出
开漏输出是通过设置位设置/清除寄存器或者输出数据寄存器的值,途经N-MOS管,最终输出到I/O端口。
开漏输出端相当于三极管的集电极,要得到高电平状态需要上拉电阻才行,适合于做电流型的驱动,其吸收电流的能力相对较强,另外,其I/O端口还可以实现双向通信口的功能;
2、开漏复用输出
开漏复用输出模式,与开漏输出模式很是类似。只是输出的高低电平的来源,不是让CPU直接写输出数据寄存器,取而代之利用片上外设模块的复用功能输出来决定的。
3、推挽输出
推挽输出是通过设置位设置/清除寄存器或者输出数据寄存器的值,途经P-MOS管和N-MOS管,最终输出到I/O端口。
推挽输出模式,I/O口可以输出高、低电平,本质上内部采用的是推挽结构,就是两个三极管分别受两互补信号的控制,同一时刻,只有一个三极管导通,另外一个截止,输出的高低电平值由IC电路的电源决定;
4、推挽复用输出
推挽复用输出模式,与推挽输出模式很是类似。只是输出的高低电平的来源,不是让CPU直接写输出数据寄存器,取而代之利用片上外设模块的复用功能输出来决定的。
以上就是本篇文章的全部内容,希望能对大家的学习有所帮助。更多精彩内容大家可以关注php中文网相关教程栏目!!!
以上是stm32单片机的gpi和gpo分别有几种工作方式的详细内容。更多信息请关注PHP中文网其他相关文章!