寄存器和GPIO

一、什么是GPIO

1、GPIO的英文全称General-Purpose Input /Output Ports,中文意思是通用I/O端口。
2、GPIO就是芯片的引脚(芯片上的引脚有些不是GPIO,只有一部分是),作为GPIO的这类引脚,他的功能和特点是可以被编程控制它的工作模式,也可以编程控制他的电压高低等。
3、在嵌入式系统中,经常需要控制许多结构简单的外部设备或者电路,这些设备有的需要通过CPU控制,有的需要CPU提供输入信号。并且,许多设备或电路只要求有开/关两种状体就够了,比如LED的亮与灭。对这些设备的控制,使用传统的串口或者并口就显得比较复杂,所以,在嵌入式微处理器上通常提供了一种“通用可编程I/O端口”,也就是GPIO。
4、一个GPIO端口至少需要两个寄存器,一个做控制用的“通用IO端口控制寄存器”,还有一个是存放数据的“通用I/O端口数据寄存器”。数据寄存器的每一位是和GPIO的硬件引脚对应的,而数据的传递方向是通过控制寄存器设置的,通过控制寄存器可以设置每一位引脚的数据流向。
5、既然一个引脚可以用于输入、输出或其他特殊功能,那么一定有寄存器用来选择这些功能。对于输入,一定可以通过读取某个寄存器来确定引脚电位的高低;对于输出,一定可以通过写入某个寄存器来让这个引脚输出高电位或者低电位;对于其他特殊功能,则有另外的寄存器来控制它们。

二、我理解的GPIO

1、GPIO、寄存器、LED这三者是什么关系?
2、GPIO是一种电路,一种能够输入输出数据的电路,这些个电路就组成了一种特殊的电路,然后将其集成为引脚,组成芯片的引脚。作为这类引脚,他的功能和特点是可以被编程控制它的工作模式,也可以编程控制他的电压高低等。
3、寄存器也是一种电路,但它是一种常用的时序逻辑电路,且这种时序电路只包含存储电路;而这些存储电路可以用来暂存指令、数据和位址。
4、LED,这个就是一种发光二极管了,也是一种电路,通电就会发光。可以说谁给LED供电谁就能控制LED。可惜啊,是GPIO接在了上面。因此GPIO被赋予了权限。
5、他们都是一种电路,那么它们就可以连接起来,寄存器连接GPIO,然后GPIO连接LED,
6、因此,我们要控制LED,就是要控制和LED相连接的GPIO,而要操作对应的GPIO,就要控制与GPIO相连的寄存器。

三、我们如何控制寄存器

1、寄存器应该就是一些接口,有CPU设计人员已经设计好的,提供给开发人员的接口信息。也就是说这些是CPU自带的功能,CPU本身的属性。
2、CPU的寄存器有很多,但是要控制的设备也很多,因此需要先选中,然后在控制。
3、寄存器似乎很虚拟,但是经过CPU的统一管控之后,给其分配了一个值,这个值就是地址值。
4、所以说CPU很多东西都已经具现化了。
5、执掌它们。你就可以控制CPU。

猜你喜欢

转载自blog.csdn.net/weixin_46089486/article/details/108832644