FS2410開發板上的按鍵驅動程式 3

2021-05-01 20:10:54 字數 1722 閱讀 3657

趙老師,

華清遠見嵌入式學院

講師。按鍵驅動程式的測試程式所下所示。在測試程式中,首先開啟按鍵裝置檔案和gpio裝置(包括4個led和蜂鳴器)檔案,接下來,根據按鍵的輸入值(按鍵id)的二進位制形式,led d9~d12發亮(例如,按下11號按鍵,則d9、d10和d12會發亮),而蜂鳴器當每次按鍵時發出聲響。

/* butt_test.c */

#include

#include

#include

#include

#include

#include

#include

#include "butt_drv.h"

#include "gpio_drv.h"

main()

gpios_fd =open(gpio_device_filename, o_rdwr); /* 開啟gpio裝置 */

if (gpios_fd == -1)

ioctl(butt_fd, 0);  /* 清空鍵盤緩衝區, 後面引數沒有意義 */

printf("press no.16 key to exit/n");

doprintf("key value = %d/n", key);

for (i = 0; i < led_num; i++)

}ioctl(gpios_fd, beep_swt, beep_swt_on); /* 發聲*/

sleep(1);

for (i = 0; i < led_num; i++)

ioctl(gpios_fd, beep_swt, beep_swt_off);

} while(key != 16); /* 按16號鍵則退出 */

close(gpios_fd);

close(butt_fd);

return 0;

}首先編譯和載入按鍵驅動程式,而且要建立裝置檔案節點。

$make clean;make/* 驅動程式的編譯*/

$insmod butt_dev.ko/* 載入buttons裝置驅動 */

$cat /proc/devices/* 通過這個命令可以查到buttons裝置的主裝置號 */

$mknod /dev/buttons  c  252  0/* 假設主裝置號為252, 建立裝置檔案節點*/

接下來,編譯和載入gpio驅動程式,而且要建立裝置檔案節點。

$make clean;make/* 驅動程式的編譯*/

$insmod gpio_drv.ko/* 載入gpio驅動 */

$cat /proc/devices/* 通過這個命令可以查到gpio裝置的主裝置號 */

$mknod /dev/gpio  c  251  0/* 假設主裝置號為251, 建立裝置檔案節點*/

然後編譯並執行驅動測試程式。

$arm-linux-gcc –o butt_test  butt_test.c

$./butt_test

字元裝置驅動之按鍵掃瞄 FS2410

一 開發環境 1 硬體平台 fs2410 2 主機 ubuntu 10.10 3 核心版本 linux 2.6.35 4 交叉編譯工具鏈 arm none linux gnueabi 二 詳細 button scan.c include include include include include...

fs4412開發板led驅動

閱讀實驗手冊第16章 led 驅動開發實驗 p275下 fs4412 led.c,fs4412 led.h,test.c 檔案 1.系統呼叫函式 test.c的main函式中,while 1 函式。函式如下 函式分析 1 函式引數中的file指標對應於應用程式傳遞的檔案描述符fd,這和傳遞open方...

飛凌ok6410開發板的按鍵驅動改程式

因為飛凌開發板自己在核心裡面整合了矩陣鍵盤的驅動,所以要用按鍵做實驗必須先禁用之前的驅動模組,否則的話無法註冊中斷,去檢視free irq的 在kernel irq manage.c中 可以發現,出現這個trying to free already free irq 101 告警的原因是 存在該中斷...