前言
前面我們直接在開發(fā)板上安裝了GCC等開發(fā)環(huán)境,可以直接在板上進行開發(fā)。
剛好手里有個USB的游戲手柄,我們就來編寫代碼讀取手柄按鍵,體驗下板上直接C開發(fā)。
輸入設備

插入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
測試
按不同的按鍵,打印如下
總結(jié)
可以看到直接在板上開發(fā)非常方便,免去了交叉編譯的繁瑣。
審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
計算機
+關注
關注
19文章
7806瀏覽量
93188 -
編程
+關注
關注
90文章
3716瀏覽量
97178 -
開發(fā)板
+關注
關注
26文章
6289瀏覽量
118041 -
交叉編譯
+關注
關注
0文章
37瀏覽量
13024 -
單板計算機
+關注
關注
0文章
89瀏覽量
16249 -
RISC-V
+關注
關注
48文章
2887瀏覽量
52936 -
RISC-V處理器
+關注
關注
0文章
86瀏覽量
11032
發(fā)布評論請先 登錄
相關推薦
熱點推薦
昉·星光單板計算機正式發(fā)售,加速RISC-V生態(tài)發(fā)展
在RISC-V Summit 2021大會上,賽昉科技(簡稱“賽昉”)作為中國RISC-V軟硬件生態(tài)的領導者,宣布“昉·
發(fā)表于 12-09 09:22
?1598次閱讀
【昉·星光 2 高性能RISC-V單板計算機體驗】VisionFive2開箱+安裝Ubuntu
【昉·星光 2 高性能RISC-V單板計算機體驗】VisionFive2開箱+安裝Ubuntu
發(fā)表于 02-21 17:49
【作品合集】賽昉科技VisionFive 2單板計算機開發(fā)板測評
賽昉科技VisionFive 2單板計算機開發(fā)板測評作品合集
產(chǎn)品介紹:
昉·
發(fā)表于 09-04 09:08
賽昉科技昉·星光RISC-V單板計算機首發(fā)試用
昉·星光VisionFive全球第一代高性價比的可運行Linux的RISC-V單板計算機,采用64位RI
發(fā)表于 04-12 10:14
【RISC-V專題】賽昉科技昉·星光RISC-V單板計算機首發(fā)試用
!
上海賽昉科技作為此次活動的合作廠商,同步上線昉·星光RISC-V單板計算機(VisionFive
發(fā)表于 04-14 15:17
RISC-V VisionFive (昉星光單板計算機)系列課程
利用賽昉科技VisionFive單板計算機學習Linux系統(tǒng)第一期:交叉編譯是什么第二期:學習和使用RISC-V(第一部分)第三期:在VisionF
發(fā)表于 04-15 15:01
【RISC-V專題】昉·星光 2(VisionFive 2)RISC-V單板計算機免費試用
VisionFive 2是全球首款集成3D GPU的高性能量產(chǎn)RISC-V 單板計算機 。與上一代相比,VisionFive
發(fā)表于 05-16 11:26
【昉·星光 2 高性能RISC-V單板計算機體驗】2更換Debian操作系統(tǒng)
接上兩篇:【昉·星光 2 高性能RISC-V單板計算機體驗】1初識賽昉科技StarFive -
發(fā)表于 08-31 00:03
【RISC-V + OpenCV 計算機視覺】用 VisionFive 2 昉·星光 2 進行物體識別
廣泛應用于視頻監(jiān)控、自動駕駛等領域。
基于Debain操作系統(tǒng)和OpenCV框架,賽昉科技在VisionFive 2(昉·星光
發(fā)表于 09-08 11:42
【昉·星光 2(VisionFive 2)RISC-V單板計算機】根目錄擴容-愉快的install大型軟件
【昉·星光 2(VisionFive 2)RISC-V單板計
昉·星光2 RISC-V單板計算機體驗(二) - 系統(tǒng)環(huán)境
昉·星光2 RISC-V單板計算機體驗(二) - 系統(tǒng)環(huán)境 一、官方資料 RISC-V官網(wǎng): [
【昉·星光 2(VisionFive 2)RISC-V單板計算機】板上直接開發(fā)-USB手柄按鍵采集
評論