日韩欧美自拍在线观看-欧美精品在线看片一区二区-高清性视频一区二区播放-欧美日韩女优制服另类-国产精品久久久久久av蜜臀-成人在线黄色av网站-肥臀熟妇一区二区三区-亚洲视频在线播放老色-在线成人激情自拍视频

FS2410開發(fā)板上的按鍵驅(qū)動程序(3)

出處:房子不郁悶 發(fā)布于:2009-08-03 17:32:55

  作者:趙老師,華清遠(yuǎn)見嵌入式學(xué)院講師。

  按鍵驅(qū)動程序的測試程序所下所示。在測試程序中,首先打開按鍵設(shè)備文件和gpio設(shè)備(包括4個LED蜂鳴器)文件,接下來,根據(jù)按鍵的輸入值(按鍵ID)的二進(jìn)制形式,LED D9~D12發(fā)亮(例如,按下11號按鍵,則D9、D10和D12會發(fā)亮),而蜂鳴器當(dāng)每次按鍵時發(fā)出聲響。

  /* butt_test.c */

  #include <sys/stat.h>

  #include <fcntl.h>

  #include <stdio.h>

  #include <sys/time.h>

  #include <sys/types.h>

  #include <unistd.h>

  #include <asm/delay.h>

  #include "butt_drv.h"

  #include "gpio_drv.h"

  main()

  {

  int butt_fd, gpios_fd, i;

  unsigned char key = 0x0;

  butt_fd = open(BUTT*_DEVICE_FILENAME, O_RDWR); /* 打開按鈕設(shè)備 */

  if (butt_fd == -1)

  {

  printf("Open buttON device button errr!\n");

  return 0;

  }

  gpios_fd = open(GPIO_DEVICE_FILENAME, O_RDWR); /* 打開gpio設(shè)備 */

  if (gpios_fd == -1)

  {

  printf("Open button device button errr!\n");

  return 0;

  }

  ioctl(butt_fd, 0);  /* 清空鍵盤緩沖區(qū), 后面參數(shù)沒有意義 */

  printf("Press No.16 key to exit\n");

  do

  {

  if (read(butt_fd, &key, 1) <= 0) /* 讀鍵盤設(shè)備,得到相應(yīng)的鍵值 */

  {

  continue;

  }

  printf("Key Value = %d\n", key);

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

  {

  if ((key & (1 << i)) != 0)

  {

  ioctl(gpios_fd, LED_D09_SWT + i, LED_SWT_ON); /* LED發(fā)亮*/

  }

  }

  ioctl(gpios_fd, BEEP_SWT, BEEP_SWT_ON); /* 發(fā)聲*/

  sleep(1);

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

  {

  ioctl(gpios_fd, LED_D09_SWT + i, LED_SWT_OFF);  /* LED熄滅*/

  }

  ioctl(gpios_fd, BEEP_SWT, BEEP_SWT_OFF);

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

  close(gpios_fd);

  close(butt_fd);

  return 0;

  }

  首先編譯和加載按鍵驅(qū)動程序,而且要創(chuàng)建設(shè)備文件節(jié)點(diǎn)。

  $ make clean;make   /* 驅(qū)動程序的編譯*/

  $ insmod butt_dev.ko /* 加載buttons設(shè)備驅(qū)動 */

  $ cat /proc/devices  /* 通過這個命令可以查到buttons設(shè)備的主設(shè)備號 */

  $ mknod /dev/buttons  c  252  0  /* 假設(shè)主設(shè)備號為252, 創(chuàng)建設(shè)備文件節(jié)點(diǎn)*/

  接下來,編譯和加載gpio驅(qū)動程序,而且要創(chuàng)建設(shè)備文件節(jié)點(diǎn)。

  $ make clean;make /* 驅(qū)動程序的編譯*/

  $ insmod gpio_drv.ko /* 加載gpio驅(qū)動 */

  $ cat /proc/devices /* 通過這個命令可以查到gpio設(shè)備的主設(shè)備號 */

  $ mknod /dev/gpio  c  251  0  /* 假設(shè)主設(shè)備號為251, 創(chuàng)建設(shè)備文件節(jié)點(diǎn)*/

  然后編譯并運(yùn)行驅(qū)動測試程序。

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

  $ ./butt_test

  “本文由華清遠(yuǎn)見
https://www.embedu.org/index.htm提供”



  
關(guān)鍵詞:FS2410開發(fā)板上的按鍵驅(qū)動程序(3)

版權(quán)與免責(zé)聲明

凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。

如涉及作品內(nèi)容、版權(quán)等問題,請?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

廣告
OEM清單文件: OEM清單文件
*公司名:
*聯(lián)系人:
*手機(jī)號碼:
QQ:
有效期:

掃碼下載APP,
一鍵連接廣大的電子世界。

在線人工客服

買家服務(wù):
賣家服務(wù):
技術(shù)客服:

0571-85317607

網(wǎng)站技術(shù)支持

13606545031

客服在線時間周一至周五
9:00-17:30

關(guān)注官方微信號,
第一時間獲取資訊。

建議反饋

聯(lián)系人:

聯(lián)系方式:

按住滑塊,拖拽到最右邊
>>
感謝您向阿庫提出的寶貴意見,您的參與是維庫提升服務(wù)的動力!意見一經(jīng)采納,將有感恩紅包奉上哦!