我对GPIO的的理解

首先,要先说下GPIO和引脚的区别,整理下网上提出的问题和答案。

GPIO的英文全称General-Purpose Input /Output Ports,中文意思是通用I/O端口

在单片机上,单片机有很多管脚(PIN)

除了一些特殊的PIN,比如电源,比如地线,晶振接线等等,其他很多都可以任意定义成两种功能中的一种:

1. 模块的管脚,2. GPIO

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

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

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

好,现在换种说法,其实是一个意思,不过我觉得说的也很好。

在嵌入式系统中,经常需要控制许多结构简单的外部设备或者电路,这些设备有的需要通过CPU控制,有的需要CPU提供输入信号。并且,许多设备或电路只要求有开/关两种状体就够了,比如LED的亮与灭。对这些设备的控制,使用传统的串口或者并口就显得比较复杂,所以,在嵌入式微处理器上通常提供了一种“通用可编程I/O端口”,也就是GPIO。

如果要操作GPIO,就必须对相应的寄存器进行操作。
一个GPIO端口至少需要两个寄存器,一个做控制用的“通用IO端口控制寄存器”,还有一个是存放数据的“通用I/O端口数据寄存器”。数据寄存器的每一位是和GPIO的硬件引脚对应的,而数据的传递方向是通过控制寄存器设置的,通过控制寄存器可以设置每一位引脚的数据流向。
(GPIO相关的寄存器有,IOPIN、IOSET、IOCLR、IODIR四个寄存器。)

关于GPIO分组:

RK1108 datasheet中的截图

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值