IO端口

IO端口

先看下IO接口的框图:IO端口主要有三个作用,可以用作输入   输出  复用功能。
IO端口

输入主要分为两条路。一部分就是IO读功能,一部分是用作单片机的外设输入功能使用。

普通的IO读功能的话,就是读取IO端口上的值,比如按键端口的高还是低。

外设输入的话,比如ADC采样的时候,采集外部的模拟量。或者输入捕捉外部引脚的输入信号的宽度等等。

只要IO是输入,那么输入数据都是通过引脚进来的,如果这个引脚是被复用为其他外设的话,就是走绿色这条路。复用功能打开,外设模块配置为输入模式就可以使用了

如果是普通输入IO的话,就是红色箭头这条路。

下面介绍一下IO口的耐压问题:

IO端口

只有黑色阴影部分的引脚能达到5V耐压,其他的都是3.3V耐压。

AD转化的时候 模拟量通过IO端口,进入外设模块 转化为数字量 然后再去读转化为数字量的寄存器哈。

一般情况下,为了降低单片机的功耗,IO口的电流一般设置在1-5mA。
IO端口

输出也有两条路。一条也是普通IO口输出使用。另一条是外设输出。

普通输出的话,就是让一个IO口输出高或者低,这样可以去点亮LED灯等等。

外设复用输出的话,可以在这个输出引脚上输出PWM波等等。或者串口输出数据,SPI模块输出数据等等。那么,如果外设模块不使能的话,一般这个IO口就是用作普通IO。只有当外设模块被使用,外设输出使能的使用,IO口上的数据才是外设模块输出的数据。

那么,IO口具体是被配置为输入还是配置输出,需要设置想要的方向寄存器。
IO端口

下面我们介绍一下IO口的几种状态。高阻态,就是IO口既不是高电平,也不是低电平。是一种未知状态。当IO口悬空的话,就是高阻态。单片机复位的时候,IO口都是高阻态。有条件话,接个电阻到地。程序运行中 IO口会变成高阻态取决于寄存器的配置。
如果IO端口处于高阻态的时候,它的电压取决于外部电路。
为了让IO口有确定的状态,一般会接一个电阻,当这个电阻连接到电源的时候,就称为上拉电阻,连接到地的话,就称为下拉电阻。

灌电流就是IO口输入的电流,拉电流就是 IO口输出的电流。往引脚外面流出的叫拉电路 往引脚里面输入的叫灌电流。

上拉和下拉电阻一般10K。