单片机引脚与端口,引脚和GPIO的区别

一,引脚与端口:

1.引脚就是芯片外接引脚啊,一个芯片至少有VCC,GND引脚,象51单片机还有IO引脚,串口引脚等,引脚就是物理外接一个个管腿啊。
2.端口是单片机内部(CPU单元)和外部IO接口组,比如说PA端口,有8个引脚,PA0~PA7。端口在IO空间映射有寄存器,这个寄存器反映当前端口状态,如PA0口上输入电压是0~5V信号,单片机在映射进寄存器时会定义一个门限(如1.8V),低于这个门限寄存器中相应位是0,高于这个门限相应位是1。一般端口还有其他控制寄存器,如控制端口引脚输入输出寄存器,如控制端口引脚复用寄存器等。当设置端口引脚为输出时,向相应输出寄存器相应位写1,该端口对应IO引脚就会输出一个近似VCC电平,当向相应位写0时,该端口对应IO引脚会输出一个近似0V电平。

二.引脚与GPIO:

GPIO这个问题很多人都混淆。

本身的概念
GPIO是General-Purpose Input / Output。
-------------
到了单片机上,单片机有很多管脚(PIN)

-------------
PIN除了一些特殊的,比如电源,比如地线,晶振接线等等,很多都可以任意定义成两种功能中的一种:1. 模块的管脚,2. GPIO

--------------
当定义为模块管脚时,PIN起模块中定义的功能。比如定义成SPI模块的管脚,那就按照具体芯片的规定,或者定义成MOSI,或者定义成MISO,或者定义成SCLK,这些不是任意的。SPI是模块,MISO等是功能管脚。

--------------
当定义成GPIO时,可以定义成高阻,输入,或者输出。这时候,就可以用作操作控制位,点LED灯等功能了。


--------------
很多模块的功能管脚,严格意义上来讲也是IO,比如CANH,CANL,所以这里为了避免混淆,就将没有定义成模块功能管脚的那些单片机管脚定义成General Purpose的IO了,以示区别。

你可能感兴趣的:(嵌入式)