RK平台计算GPIO对应的整型数

发布时间:2024年01月10日

GPIO是比较常用的资源,比如说控制LED灯亮灭,控制LCD上电,控制模块的复位电路,做外设的中断脚等等,这些都有对GPIO的操作和使用,所以说,GPIO开发是驱动开发中必不可少的操作,而且也是最基础的东西。

我们在驱动开发过程中,有时候我们不能确定自己使用和申请的gpio是否对了,我们可以把它对应的数值给打印出来,通过对比对应的数值可以确定我们具体使用的是哪个数值;下面依旧是拿rk平台来举例:

在这里插入图片描述

这里使用的是 GPIO7_C5 来举例。首先,需要计算出代表 GPIO7_C5 的值,算法如下:

GPIO7_C5 = 7x32 + (C-A)x8 + 5 = 7x32+2x8+5 = 245;

(注:最前面和 32 相乘的数字因为是 gpio7,所以是 732。如果是 gpio3,那就是 332;
括号里面的 A、B、C、D 分别代表数值 0、1、2、3,在计算时候分别对应去减即可。
这里因为是 C5,所以用 C-A,如果是 B3,就是 B-A;最后的+5 是因为是 GPIO7_C5,
如果是 GPIO7_C4,那么最后就+4。)

此外,我们还可以通过以下两个命令来查看确认(其他平台可能节点不同,不过名称基本上是pinmux-pins):
cat /d/pinctrl/pinctrl/pinmux-pins 或者 cat /sys/kernel/debug/pinctrl/pinctrl/pinmux-pins

cat /sys/kernel/debug/gpio //查看GPIO当前的申请使用情况和当前的电平状态

com-all-enable = <&gpio4 RK_PC5  GPIO_ACTIVE_LOW>;

?代表?gpio4?C5?口为低电平

RK_PC5?为宏定义?取值范围为0~31

文章来源:https://blog.csdn.net/xiaowang_lj/article/details/135508920
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。