前言
前面我們直接在開發板上安裝了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文章
6694瀏覽量
85031 -
編程
+關注
關注
88文章
3444瀏覽量
92594 -
開發板
+關注
關注
25文章
4528瀏覽量
94576 -
交叉編譯
+關注
關注
0文章
31瀏覽量
12575 -
單板計算機
+關注
關注
0文章
68瀏覽量
15512 -
RISC-V
+關注
關注
41文章
1947瀏覽量
45215 -
RISC-V處理器
+關注
關注
0文章
75瀏覽量
9909
發布評論請先 登錄
相關推薦
【昉·星光 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
評論