导航

    全志在线开发者论坛

    • 注册
    • 登录
    • 搜索
    • 版块
    • 话题
    • 在线文档
    • 社区主页

    【飞凌 OK113i-C 全志T113-i开发板】5.GPIO的控制

    飞凌嵌入式专区
    1
    1
    1406
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • T
      Tristan_C LV 4 最后由 Tristan_C 编辑

      我的第一个控制:LED点亮

      前面搭建完了开发环境了,下面可以尝试别的简单方法,跑一下板载的外部资源,控制一个LED亮灭(通常称电灯实验)是一个比较常见的板载资源测试功能之一。下面来尝试一下控制板子上的下面这颗用户的LED灯。
      从图中可以看出,D1这颗LED灯接在了PG11引脚上,通过R1电阻接到VCC电源进行限流,并使用CQA34N00这颗N沟道MOS管进行控制,而控制引脚PG11接了2K的电阻进行上拉。给出厂的板子上电,这颗LED保持常亮。
      aebc1ac9-182a-4aa0-846e-e33a81af21c5-image.png

      下面通过文件操作的方法控制一下这个LED灯
      首先进行一下引脚编号的计算。
      根据 #define PIN_NO(port, line) (((port) - 'A') * 0x20 + (line))进行计算
      其中 port 为 gpio 端口,line 为该 gpio 对应引脚,((port)-'A')代表 ASCII 码相减。
      如这颗LED的引脚 PG11对应的 pin 引脚编号为IN_NO('G',11)=(0x47-0x41)*0x20+11=(71-65)*32+11=107。
      也就是说,这颗LED的引脚实际使用编号就为203.
      然后登录一下板子的系统,通过如下命令查看文件GPIO,同时也进入到GPIO文件夹中,方便后续测试操作。
      a82a4692-7353-4ed7-a2d2-1bd306179218-image.png

      可以看到已经有了export和unexport

      接下去使用
      Echo 203 > /sys/class/gpio/export
      进行引脚导出命令,就能看到多出了gpio203文件夹
      f7175940-307e-4955-baf3-40e2357ff944-image.png

      进入gpio203文件夹,看看内含文件
      82776055-f2f4-4841-b5d8-5a1460046a42-image.png

      其中,direction为gpio的输入输出方向配置,value则为输入输出的值了。可以配置前者为输出,后者为1和0分别控制led的亮和灭了。
      使用
      echo "out" > /sys/class/gpio/gpio203/direction
      将引脚的方向设置为输出,并使用
      cat /sys/class/gpio/gpio203/direction
      查看上面的设置输出是否成功正确。
      4235f70c-8d4a-4d6a-b11c-33cad2df756d-image.png

      这时候板载的这颗LED状态就熄灭了,因为默认的value值从哪读取来看应该为0
      4ea4948f-4c52-434f-8e45-1422d2424041-image.png

      接下去就可以通过写value文件的内容为1和0,分别控制LED灯的亮和灭了。
      a8ca9411-b2e3-42b7-a4d8-d95c46c15ac3-image.png

      设备树那边也定义了一个T113-i核心板上的板载LED,这颗LED默认也就是作为Linux核心板的“心跳”功能使用的。

      在sys/class下面
      e712802a-eaff-4281-8e7a-2918412cd2a0-image.png

      可以发现有一个heartbeat的文件夹,并可以发现其里面的如下的文件
      438bef04-4d7f-429a-9574-4ac965dc6892-image.png

      其中控制brightness文件内容即可控制这颗LED的亮灭状态了,也就是写1和0分别就可以控制其亮和灭的状态。
      86e3f6a3-2463-47de-84b5-edee30db6ac2-image.png

      852b2dd5-a61a-4489-9e0d-a39be7d73add-image.png

      还可以从板子设备树的具体文件夹具体文件中的leds中找到对应的引脚定义,可以暗道使用引脚就是PG16,GPIO_ACTIVE_HIGH指定了其点亮的电平为高电平。
      81e5d5a5-4085-40a1-8a0b-ccababe1d960-image.png

      以上就是通过设备树中的gpio和leds来控制核心板和底板上的led的亮灭状态功能了。

      6a4a6314-7925-4a64-8448-d15f8ab0d7c5-image.png

      e1fc5155-31f8-4392-a6ff-e269fef62845-image.png

      7f8f7cba-a22a-4995-9fa3-824b72177b15-image.png

      确认可执行文件的权限并更新
      4b31a9a1-1024-4734-a472-87f57c087198-image.png

      然后通过sftp,传给开发板的home/my_test路径下,并通过ls命令确认

      f58d52ad-2c2d-40ed-b248-6bfd6c6cc30c-image.png

      执行,输入对应的引脚编号就可以看到翻转三次了
      773f3203-ae0c-461a-bd6b-4fc186fef7e9-image.png

      其主要实现代码为
      输入引脚编号
      0913069c-c1f5-4a45-9046-afac2b498d80-image.png

      Export引脚到文件
      01c1683e-9b83-4f89-aef8-5102e57ce706-image.png

      设置方向为out
      c1aefabf-5ab8-4797-9043-a5b3d7388780-image.png

      翻转三次
      d4766b6f-788b-4adb-ace4-2dce5c1b6cde-image.png

      最后还需要unexport
      c964c36e-a517-425f-961f-64018007a500-image.png

      1 条回复 最后回复 回复 引用 分享 0
      • 1 / 1
      • First post
        Last post

      Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号

      行为准则 | 用户协议 | 隐私权政策