查看: 939|回复: 0

[评测分享] 【米尔-全志T113-S3入门级开发板 测评】外设的基本使用

[复制链接]

该用户从未签到

发表于 2023-11-11 22:11:50 | 显示全部楼层 |阅读模式
分享到:
  嵌入式Linux必不可少的一部分内容就是还要接触硬件底层,T113开发板包含了比较丰富的外设,所以就来测试一下外设的使用,也是夯实基础操作的过程。结合资料内容主要做GPIO测试,input事件读取,也就是读轻触按键。
  板子上的LED共有3颗且颜色不一。已蓝色LED为例,在命令行窗口是可以直接用shell命令进行操作。
  比如关闭心跳功能
  1. echo none > /sys/class/leds/led-blue/trigger
复制代码
熄灭LED操作,至于为什么写1是熄灭,这跟硬件设计有关。
  1. echo 1 > /sys/class/leds/led-blue/brightness
复制代码
点亮LED操作
  1. echo 0 > /sys/class/leds/led-blue/brightness
复制代码
恢复心跳功能
  1. echo heartbeat > /sys/class/leds/led-blue/trigger
复制代码
以上命令均测试无误。
b.png
但我们一般都是在程序里去操作GPIO,所有还是以代码方式去实现。在之前配置好的CodeBlocks里去编写和编译。
a.png
然后在板子上去运行以上代码的可执行文件,就可以关闭心跳功能了。其他点亮熄灭操作类似。
接下来测试下按键。Linux 的/dev/input/eventx 设备可以用来方便地调试鼠标、键盘、触摸板等输入设备。所以写程序就是读取input。但首先要知道这个按键对应的输入事件,通过shell命令很容易获取到。
c.png
得到这个结果,那么程序就可以编写了
e.png
以上程序运行后进入阻塞态,按键按下打印字符串Pressed,抬起后打印字符串Released。到这里其实没多大用处,实际应用多伴随着其他的操作,比如开关LED,因此结合前面的测试,做以下代码


  1. int main()
  2. {

  3.     int fd = open("/sys/class/leds/led-blue/trigger",O_RDWR);
  4.     if(fd > 0)
  5.     {
  6.         write(fd,"none",4);
  7.         printf("heartbeat stop\r\n");
  8.     }

  9.     int led = open("/sys/class/leds/led-blue/brightness",O_RDWR);

  10.     int keys_fd;
  11.         char ret[2];
  12.         struct input_event t;
  13.         keys_fd=open("/dev/input/event5", O_RDONLY);
  14.         if(keys_fd <= 0)
  15.         {
  16.                 printf("open /dev/input/event5 device error!\n");
  17.                 return -1;
  18.         }
  19.         while(1)
  20.         {
  21.                 if(read(keys_fd, &t, sizeof(t)) == sizeof(t))
  22.                 {
  23.                         if(t.type==EV_KEY)
  24.                                 if(t.value==0 )
  25.                                 {
  26.                     write(led,"1",1);
  27.                                 }else{
  28.                     write(led,"0",1);
  29.                                 }
  30.                 }
  31.         }
  32.         close(keys_fd);
  33.         return 0;

  34. }
复制代码
  按下按键,LED就会亮起,松开按键则熄灭。这就是一个输入输出的简单应用。也就是基础操作需要掌握的。


回复

使用道具 举报

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

本版积分规则

关闭

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

手机版|小黑屋|与非网

GMT+8, 2024-11-22 04:15 , Processed in 0.115950 second(s), 17 queries , MemCache On.

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

苏公网安备 32059002001037号

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.