0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

嵌入式USB开发 来源:嵌入式USB开发 作者:嵌入式USB开发 2023-07-21 09:06 次阅读

前言

前面我们直接在开发板上安装了GCC等开发环境,可以直接在板上进行开发。

刚好手里有个USB的游戏手柄,我们就来编写代码读取手柄按键,体验下板上直接C开发。

输入设备

图片1.png

插入USB手柄,可以看到多了/dev/input文件夹,多了event0设备
图片2.png

代码

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

测试

按不同的按键,打印如下
图片3.png

总结

可以看到直接在板上开发非常方便,免去了交叉编译的繁琐。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 计算机
    +关注

    关注

    19

    文章

    7385

    浏览量

    87644
  • 编程
    +关注

    关注

    88

    文章

    3574

    浏览量

    93545
  • 开发板
    +关注

    关注

    25

    文章

    4913

    浏览量

    97095
  • 交叉编译
    +关注

    关注

    0

    文章

    32

    浏览量

    12618
  • 单板计算机
    +关注

    关注

    0

    文章

    74

    浏览量

    15608
  • RISC-V
    +关注

    关注

    44

    文章

    2216

    浏览量

    45968
  • RISC-V处理器
    +关注

    关注

    0

    文章

    80

    浏览量

    9981
收藏 人收藏

    评论

    相关推荐

    ·星光 2VisionFive 2RISC-V单板计算机】尝试玩3D赛车-帧率有点低

    ·星光 2VisionFive 2RISC-V单板计
    的头像 发表于 07-21 09:05 1145次阅读
    【<b class='flag-5'>昉</b>·<b class='flag-5'>星光</b> <b class='flag-5'>2</b>(<b class='flag-5'>VisionFive</b> <b class='flag-5'>2</b>)<b class='flag-5'>RISC-V</b><b class='flag-5'>单板计算机</b>】尝试玩3D赛车-帧率有点低

    ·星光 2VisionFive 2RISC-V单板计算机】SDL开发

    ·星光 2VisionFive 2RISC-V单板计
    的头像 发表于 07-21 09:08 1327次阅读
    【<b class='flag-5'>昉</b>·<b class='flag-5'>星光</b> <b class='flag-5'>2</b>(<b class='flag-5'>VisionFive</b> <b class='flag-5'>2</b>)<b class='flag-5'>RISC-V</b><b class='flag-5'>单板计算机</b>】SDL<b class='flag-5'>开发</b>

    ·星光 2 高性能RISC-V单板计算机体验】+3、系统功能测试

    ·星光 2 高性能RISC-V单板计算机体验】+3、系统功能测试
    的头像 发表于 07-26 08:59 1262次阅读
    【<b class='flag-5'>昉</b>·<b class='flag-5'>星光</b> <b class='flag-5'>2</b> 高性能<b class='flag-5'>RISC-V</b><b class='flag-5'>单板计算机</b>体验】+3、系统功能测试

    ·星光单板计算机正式发售,加速RISC-V生态发展

    RISC-V Summit 2021大会上,赛科技(简称“赛”)作为中国RISC-V软硬件生态的领导者,宣布“·
    发表于 12-09 09:22 1275次阅读
    <b class='flag-5'>昉</b>·<b class='flag-5'>星光</b><b class='flag-5'>单板计算机</b>正式发售,加速<b class='flag-5'>RISC-V</b>生态发展

    ·星光 2 高性能RISC-V单板计算机体验】VisionFive2开箱+安装Ubuntu

    ·星光 2 高性能RISC-V单板计算机体验】VisionFive2开箱+安装Ubuntu
    发表于 02-21 17:49

    科技·星光RISC-V单板计算机首发试用

    ·星光VisionFive全球第一代高性价比的可运行Linux的RISC-V单板计算机,采用64位RI
    发表于 04-12 10:14

    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专题】·星光 2VisionFive 2RISC-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

    ·星光 2VisionFive 2RISC-V单板计算机】根目录扩容-愉快的install大型软件

    ·星光 2VisionFive 2RISC-V单板计
    的头像 发表于 07-18 07:20 737次阅读

    ·星光2 RISC-V单板计算机体验(一) - 开箱

    ·星光2 RISC-V单板计算机体验(一) - 开箱 一、开箱 ·
    的头像 发表于 02-21 10:10 629次阅读
    <b class='flag-5'>昉</b>·<b class='flag-5'>星光</b><b class='flag-5'>2</b> <b class='flag-5'>RISC-V</b><b class='flag-5'>单板计算机</b>体验(一) - 开箱

    ·星光2 RISC-V单板计算机体验(二) - 系统环境

    ·星光2 RISC-V单板计算机体验(二) - 系统环境 一、官方资料 RISC-V官网: [
    的头像 发表于 02-21 10:15 600次阅读
    <b class='flag-5'>昉</b>·<b class='flag-5'>星光</b><b class='flag-5'>2</b> <b class='flag-5'>RISC-V</b><b class='flag-5'>单板计算机</b>体验(二) - 系统环境

    ·星光2 RISC-V单板计算机体验(三) - SSH连接

    ·星光2 RISC-V单板计算机体验(三) - SSH连接 一、官方资料 RISC-V官网:
    的头像 发表于 02-21 10:21 460次阅读
    <b class='flag-5'>昉</b>·<b class='flag-5'>星光</b><b class='flag-5'>2</b> <b class='flag-5'>RISC-V</b><b class='flag-5'>单板计算机</b>体验(三) - SSH连接