查看: 122|回复: 0

[评测分享] 【ELF 2学习板】10.GPIO系统测试(1)

[复制链接]
  • TA的每日心情
    擦汗
    昨天 20:59
  • 签到天数: 211 天

    连续签到: 4 天

    [LV.7]常住居民III

    发表于 6 天前 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 stm1024 于 2025-1-21 23:33 编辑

    今日测评演示一下RK3588的GPIO系统。

    Linux提供了GPIO子系统,在/sys/class/gpio/中,可以看到很多这样的文件夹:
    1.jpg
    其中,除了export和unexport外,都是使用了gpioxx来命名的文件夹,这些文件夹就对应了一个针脚。
    我们可以选择开发板上的一个针脚,测试GPIO的输出,针脚定义如下:
    1.1.jpg

    这里选择7号针脚,注意,这一长串中,官方手册是这样描述的:
    网络标号解释说明:如UART6--UART9--TX
    左侧 UART6是3576核心板引脚功能
    中间 UART9是3588核心板引脚功能
    右侧 TX是底板用作的功能(可为空)

    因此,这里应该使用的是**色底色的针脚,亦即GPIO3_B3。
    那么我们需要计算其GPIO口对应的编号,计算方式很简单,例如GPIO口的定义为GPIOn_Xy,其中n可能是0~7之类的数字,而X表示A,B,C等,y又是数字,
    在 RK3588 上确定GPIO编号的公式为: GPIOn_Xy=n*32+(X-1)*8+y,其中A=1,B=2,C=3,诸如此类。
    因此,回到这个例子中,GPIO3_B3的编号就应该是3*32+(2-1)*8+3=107
    使用export导出GPIO,相当于初始化。这里我们要使用GPIO序号来导出对应的GPIO口。
    2.jpg
    可以看到,该文件夹下面已经多出了一个gpio107的文件夹,cd进入该文件夹,查看有如下文件:
    3.jpg
    这些文件用于控制和查看 GPIO 引脚的状态和配置,其中:

    • active_low : 是否电平逻辑取反。1:取反,0:不取反。
    • device : 该文件是一个符号链接,指向与 GPIO 引脚关联的设备。
    • direction: 设置GPIO方向,out:输出,in:输入。
    • edge:配置引脚的中断边沿检测。可以是 none(无边沿检测)、rising(上升沿)、falling(下降沿)或 both(双边沿)。
    • power :管理 GPIO 引脚的电源设置。
    • subsystem :该文件是一个符号链接,指向该 GPIO 引脚所属的子系统。
    • uevent :用于与用户空间工具(如 udev)进行交互,通常不直接操作。
    • value :GPIO电平值。
    • 常用的主要是direction和value
    由于我们需要驱动一个LED,将LED的正极接到40PIN的1号针脚3V3,然后将负极接到7号针脚,相当于是使用灌电流的方式驱动,在低电平的时候LED点亮,高电平的时候LED熄灭。先查看和修改GPIO的方向:
    4.jpg
    可以看到GPIO的方向被配置为了输出。
    这个时候可以发现LED已经被点亮了:
    5.jpg
    查看value的值,发现是0,这与硬件接线保持相同:
    6.jpg
    如果需要熄灭LED,则只需要向其中写入1即可:
    7.jpg
    这个时候LED也同步熄灭了。
    最后,如果不使用该GPIO口,则应该使用unexport注销GPIO,方法是:echo GPIO序号 > unexport
    8.jpg

    OK,今天的评测就到这里,下一步测试使用程序方式控制LED运行。



    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    手机版|小黑屋|与非网

    GMT+8, 2025-1-27 17:51 , Processed in 0.107127 second(s), 16 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.