m0单片机io口_混子笔记之回顾单片机IO口工作模式
时间:2022-10-02 19:00:00
今天回顾记录单片机IO口,这里说的是GPIO,General Purpose Input Output (GPIO)。通用输入输出端口,简称GPIO口是单片机与其他外围设备和电路进行信息交换和控制的桥梁。
(下面以stm以32单片机为例)IO口模式主要包括:模拟输入、浮空输入、上拉输入、下拉输入、开漏输出、推挽输出、复用开漏输出和复用推挽输出。
1、模拟输入
GPIOModeAIN模拟输入,即关闭施密特触发器,将电压信号传送到片上外设模块(不接上下拉电阻)。应用ADC在低功耗下模拟输入或省电。
2、浮空输入
GPIOModeIN_FLOATING浮动输入。IO电平状态是不确定的,完全由外部输入决定。如果引脚悬挂,读取端口的电平是不确定的。可以做按钮识别。即使不连接上拉或下拉,外部电路的状态也是不确定的。
3、上拉输入
GPIOModeIPU上拉输入。IO一般来说,内部上拉电阻输入为1K-10K,电阻越小,驱动能力越强。GPIO引脚无输入时,上拉输入默认为高电平。
4、下拉输入
GPIOModeIPD下拉输入,IO与上比较了解内部下拉电阻输入。GPIO引脚无输入时,下拉输入默认为低电平。电阻功能:防止输入端悬挂,减少外部电流对芯片的干扰,限制流量,提高高电平输出的驱动能力。
5、开漏输出
GPIOModeOut_OD泄漏输出,输出端相当于三极管的集电极。需要上拉电阻才能获得高电平状态。适用于电流驱动,其吸收电流的能力相对较强,一般为20mA以内。IO输出0接GND,IO输出1,悬挂,需要外部上拉电阻才能实现高输出电平。当输出为1时,IO口的状态由上拉电阻拉高,但由于是泄漏输出模式,因此IO口可由外部电路改为低电平或不变。可以读IO实现输入电平的变化C51的IO双向功能。这就是为什么51单片机P0口之所以要接上拉电阻,P0是泄漏输出结构,不能输出高电平)
6、推挽输出
GPIOModeOut_PP推拉输出,可输出高、低电平,连接数字设备。推拉输出是因为它的输出结构类似于推拉结构,它由两个三极管(或其他)组成MOS管等)分别受到一个信号的控制,这信号的互补的,就是说只有一个三极管导通,一个三极管导通的时候另一个就要截止。推拉输出可输出高电平或低电平。当锁定器为1时,可以继续提供强上拉,这种输出结构可以驱动需要大电流的设备。
7、复用开漏
GPIOModeAF_OD复用开漏输出可理解为GPIO当口被用作第二个功能时,它不是通用的IO使用口腔。片内外设功能。(TX1,MOSI,MISO.SCK.SS(SPI))
8、复用推挽
GPIOModeAF_PP复用推挽输出,片内外设功能(I2C的SCL,SDA)
总结
分析:本课题主要考察指针变量定义的相关问题 A选项定义了一个指向整型的变量的地址p和一个整型的变量i。这个定义是可以的。B选项定义了整形变量i和指向整形变量的地址p,变量p的值初始化为变量i,p这取决于i具体分配空间占用的地址。这个定义是可以的。C选项定义了整形变量i和指向整形变量的地址p。这个定义是可以的。D选项定义了指向整形变量的地址p,变量p的值初始化为变量i地址和整形变量i,但问题是变量i在*p=&i然后定义,编译器会报告一个error:‘i’undeclared,需要把i的定义放进去*p=&i以前,题目中的定义是不可能的。 如果上面有错误,希望各路大神指出,弟弟,我会感激的! 部分来自网络,未商用,用于技术知识传播! 扫码关注我——一个不正经的混子-引用别人说的好话
“浮空,顾名思义,它漂浮在空中。上面用绳子拉起来,下面用绳子拉起来就下沉了。.
开漏,等于输出口接了一个NPN而且只接了三极管e,b.c极是开路的,你可以连接一个电阻到3.3V,也可以接一个电阻到5V,这样,当输出1时,它可以是5V电压,也可以是3.3V电压了.但是,当电阻不上拉时,高输出无法实现.
推挽,有推有拉,任何时候,IO口的电平是确定的,不需要外拉或下拉电阻.”
点我留言