GPIO是啥?和单片机、ARM上的引脚是一个概念么
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GPIO是啥?和单片机、ARM上的引脚是一个概念么相关的知识,希望对你有一定的参考价值。
学过单片机和ARM,也懂得控制单片机上的引脚,刚开始学没注意,通过控制位啊什么的,编代码点灯、键盘等等,也就搞了。但是现在却突然意识到,我压根就不知道这些引脚是个啥?
就是单片机上引出的引脚,到底是个什么呢?GPIO又是个什么呢?这俩是一个概念么?
在嵌入式系统中,经常需要控制许多结构简单的外部设备或者电路,这些设备有的需要通过CPU控制,有的需要CPU提供输入信号。并且,许多设备或电路只要求有开/关两种状体就够了,比如LED的亮与灭。对这些设备的控制,使用传统的串口或者并口就显得比较复杂,所以,在嵌入式微处理器上通常提供了一种“通用可编程I/O端口”,也就是GPIO。
一个GPIO端口至少需要两个寄存器,一个做控制用的“通用IO端口控制寄存器”,还有一个是存放数据的“通用I/O端口数据寄存器”。数据寄存器的每一位是和GPIO的硬件引脚对应的,而数据的传递方向是通过控制寄存器设置的,通过控制寄存器可以设置每一位引脚的数据流向。
(GPIO相关的寄存器有,IOPIN、iosET、IOCLR、IODIR四个寄存器。) 参考技术A 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了,以示区别。本回答被提问者和网友采纳 参考技术B GPIO 是 General Purpose Input Output(通用输入/输出)的缩写,简称为GPIO;
单片机上引出的引脚,可以软件设置成输出或是输入。 参考技术C 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了,以示区别。
以上是关于GPIO是啥?和单片机、ARM上的引脚是一个概念么的主要内容,如果未能解决你的问题,请参考以下文章