前言
前面我们直接在开发板上安装了GCC等开发环境,可以直接在板上进行开发。
刚好手里有个USB的游戏手柄,我们就来编写代码读取手柄按键,体验下板上直接C开发。
输入设备
插入USB手柄,可以看到多了/dev/input文件夹,多了event0设备
代码
vi key.c添加如下代码
1. /* 单独测试:#define KEY_TEST 1
1. * 作为接口:#define KEY_TEST 0
1. * 编译 aarch64-linux-gnu-gcc key.c -o key -lpthread
1. * 运行 chmod +x key
1. * ./key /dev/input/event8
1. */
1.
1. #include< stdint.h >
1. #include< stdio.h >
1. #include< stdlib.h >
1. #include< string.h >
1. #include< unistd.h >
1.
1. #include< pthread.h >
1.
1. #include < linux/input.h >
1. #include < sys/types.h >
1. #include < sys/stat.h >
1. #include < fcntl.h >
1.
1. #define KEY_TEST 1
1.
1. int s_keys_fd = -1;
1. uint32_t s_keys_state = 0;
1.
1.
1. void key_setstate(int code , int vaule, uint32_t* key)
1. {
1. if(vaule == 0)
1. {
1. switch(code)
1. {
1. case 296:
1. *key &= ~(1u< < 3);
1. break;
1. case 297:
1. *key &= ~(1u< < 4);
1. break;
1. case 288:
1. *key &= ~(1u< < 5);
1. break;
1. case 289:
1. *key &= ~(1u< < 8);
1. break;
1. case 290:
1. *key &= ~(1u< < 6);
1. break;
1. case 291:
1. *key &= ~(1u< < 7);
1. break;
1. case 292:
1. *key &= ~(1u< < 1);
1. break;
1. case 294:
1. *key &= ~(1u< < 2);
1. break;
1. default:
1. break;
1. }
1. }
1. else
1. {
1. switch(code)
1. {
1. case 296:
1. *key |= (1u< < 3);
1. break;
1. case 297:
1. *key |= (1u< < 4);
1. break;
1. case 288:
1. *key |= (1u< < 5);
1. break;
1. case 289:
1. *key |= (1u< < 8);
1. break;
1. case 290:
1. *key |= (1u< < 6);
1. break;
1. case 291:
1. *key |= (1u< < 7);
1. break;
1. case 292:
1. *key |= (1u< < 1);
1. break;
1. case 294:
1. *key |= (1u< < 2);
1. break;
1. default:
1. break;
1. }
1. }
1. }
1.
1. /*
1. * SELECT 296 SELECT 3
1. * START 297 START 4
1. * UP 288 右上 5
1. * RIGHT 289 右右 8
1. * DOWN 290 右下 6
1. * LEFT 291 右左 7
1. * A 292 左前上 1
1. * B 294 左前下 2
1. */
1. int key_getstate(int key)
1. {
1. if(s_keys_state & (1u<
编译
gcc key.c -o key
测试
按不同的按键,打印如下
总结
可以看到直接在板上开发非常方便,免去了交叉编译的繁琐。
审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
计算机
+关注
关注
19文章
6651浏览量
84545 -
编程
+关注
关注
88文章
3441浏览量
92404 -
开发板
+关注
关注
25文章
4434浏览量
94018 -
交叉编译
+关注
关注
0文章
31浏览量
12560 -
单板计算机
+关注
关注
0文章
68浏览量
15506 -
RISC-V
+关注
关注
41文章
1904浏览量
45047 -
RISC-V处理器
+关注
关注
0文章
74浏览量
9896
发布评论请先 登录
相关推荐
【昉·星光 2 高性能RISC-V单板计算机体验】VisionFive2开箱+安装Ubuntu
【昉·星光 2 高性能RISC-V单板计算机体验】VisionFive2开箱+安装Ubuntu
发表于 02-21 17:49
【昉·星光 2 高性能RISC-V单板计算机体验】为 Ubuntu 安装 Docker 及常用软件
【昉·星光 2 高性能RISC-V单板计算机体验】为 Ubuntu 安装 Docker 及常用软件
目的
为了更好的利用
发表于 02-21 17:54
【RISC-V专题】赛昉科技昉·星光RISC-V单板计算机首发试用
!
上海赛昉科技作为此次活动的合作厂商,同步上线昉·星光RISC-V单板计算机(VisionFive
发表于 04-14 15:17
RISC-V VisionFive (昉星光单板计算机)系列课程
利用赛昉科技VisionFive单板计算机学习Linux系统第一期:交叉编译是什么第二期:学习和使用RISC-V(第一部分)第三期:在VisionF
发表于 04-15 15:01
【赛昉科技昉·星光RISC-V单板计算机试用体验】开箱报告
前几天收到了赛昉科技昉·星光RISC-V单板计算机,给大家做一下简单介绍。其主要接口和功能有1.2.4 GHz 无线及蓝牙 4.2(BLE)
发表于 06-26 22:14
【赛昉科技昉·星光RISC-V单板计算机试用体验】开箱+心得
【赛昉科技昉·星光RISC-V单板计算机试用体验】开箱+心得2022年4月14日上午,我从发烧友研习社公众号看到了“【重磅集结】14款
发表于 07-06 20:54
【RISC-V专题】昉·星光 2(VisionFive 2)RISC-V单板计算机免费试用
VisionFive 2是全球首款集成3D GPU的高性能量产RISC-V 单板计算机 。与上一代相比,VisionFive
发表于 05-16 11:26
【昉·星光 2 高性能RISC-V单板计算机体验】2更换Debian操作系统
接上两篇:【昉·星光 2 高性能RISC-V单板计算机体验】1初识赛昉科技StarFive -
发表于 08-31 00:03
【RISC-V + OpenCV 计算机视觉】用 VisionFive 2 昉·星光 2 进行物体识别
广泛应用于视频监控、自动驾驶等领域。
基于Debain操作系统和OpenCV框架,赛昉科技在VisionFive 2(昉·星光
发表于 09-08 11:42
VisionFive 2单板计算机成功支持Docker容器解决方案
赛昉科技进一步获取。
关于 VisionFive 2
VisionFive 2 是全球第一款集成 3D GPU 的高性能量产
发表于 09-08 11:45
评论