前言
前面我們直接在開發板上安裝了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文章
7494瀏覽量
87947 -
編程
+關注
關注
88文章
3615瀏覽量
93732 -
開發板
+關注
關注
25文章
5050瀏覽量
97456 -
交叉編譯
+關注
關注
0文章
32瀏覽量
12641 -
單板計算機
+關注
關注
0文章
74瀏覽量
15631 -
RISC-V
+關注
關注
45文章
2277瀏覽量
46158 -
RISC-V處理器
+關注
關注
0文章
80瀏覽量
10008
發布評論請先 登錄
相關推薦
昉·星光單板計算機正式發售,加速RISC-V生態發展
在RISC-V Summit 2021大會上,賽昉科技(簡稱“賽昉”)作為中國RISC-V軟硬件生態的領導者,宣布“昉·
發表于 12-09 09:22
?1291次閱讀
【昉·星光 2 高性能RISC-V單板計算機體驗】VisionFive2開箱+安裝Ubuntu
【昉·星光 2 高性能RISC-V單板計算機體驗】VisionFive2開箱+安裝Ubuntu
發表于 02-21 17:49
【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專題】昉·星光 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
【昉·星光 2(VisionFive 2)RISC-V單板計算機】根目錄擴容-愉快的install大型軟件
【昉·星光 2(VisionFive 2)RISC-V單板計
評論