【昉·星光 2(VisionFive 2)RISC-V单板计算机】板上直接开发-USB手柄按键采集

前言前面我们直接在开发板上安装了gcc等开发环境,可以直接在板上进行开发。
刚好手里有个usb的游戏手柄,我们就来编写代码读取手柄按键,体验下板上直接c开发。
输入设备
插入usb手柄,可以看到多了/dev/input文件夹,多了event0设备
代码vi key.c添加如下代码
1. /* 单独测试:#define key_test 11. * 作为接口:#define key_test 01. * 编译 aarch64-linux-gnu-gcc key.c -o key -lpthread1. * 运行 chmod +x key1. * ./key /dev/input/event81. */1.1. #include1. #include1. #include1. #include1. #include1.1. #include1.1. #include 1. #include 1. #include 1. #include 1.1. #define key_test 11.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. else1. {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 31. * start 297 start 41. * up 288 右上 51. * right 289 右右 81. * down 290 右下 61. * left 291 右左 71. * a 292 左前上 11. * b 294 左前下 21. */1. int key_getstate(int key)1. {1. if(s_keys_state & (1u<编译gcc key.c -o key
测试按不同的按键,打印如下
总结可以看到直接在板上开发非常方便,免去了交叉编译的繁琐。


单踪模拟示波器的原理
能效标准再升级 对电源有哪些新要求
NB-IOT与LORA两个物联网组网应该如何选择
微软和谷歌角逐AI领域,ChatGPT 脱颖而出
黑科技智能镜子显示屏,一键体验智能家居新生活
【昉·星光 2(VisionFive 2)RISC-V单板计算机】板上直接开发-USB手柄按键采集
讨论设计电源方案的降低开关电源噪声简单设计技术
智能锁行业优点多 不断有企业看中入局
使用MPU监控创建安全可靠的嵌入式系统 使用MPU监控的原因和好处
医疗机器人研发商磅策医疗完成近亿元A+轮融资
智慧公安大数据研判平台搭建情报分析系统搭建
【收藏】大牛总结的30个PCB布局的细节与心得
谐波的产生、危害及抑制
潮州全面整治线路板等行业重金属污染
日韩运营商5G全球首发,预计明年3月商用
MATLAB学习笔记之傅里叶变换2
单片机是如何从入门到放弃的
一种数字功放PCB实现方案
汽车安全设计开发完整的碰撞防护系统解决方案
技术分享|终端安全防护|ChatGPT会创造出超级恶意软件吗?