flashled.c

来自「USB驱动使用比较详细的一个例子」· C语言 代码 · 共 66 行

C
66
字号
#include <stdio.h>#include "usb-mn-ioctls.h"#include <fcntl.h>#include <sys/ioctl.h>#include <asm/types.h>int main(int argc, char* argv[]){  if(argc!=4) {    printf("flashLED usage: flashLED <delay-time> <turn-times> <LEDnum>\n");    printf("\tdelay-time:enter zero to get 0.5sec delay\n");    printf("\tturn-times:enter zero flash for ever,enter one flash one time\n");    printf("\tLEDnum:0->1st LED; LEDnum:1->2nd LED; LEDnum:A->both of them\n");        exit(-1);  }  /* argv[1] means the time of delay(0 means 0.5s)   * argv[2] means the times of turn   * argv[3] means which LED U want to operate on   */  int fd=open("/dev/MiniNurse",O_WRONLY);  if (fd<0) {    printf("canNOT open Device.\n");    exit(-1);  }  int delay = *argv[1]-48;  delay = (delay==0) ? .5 : delay;  int turn = *argv[2]-48;  printf("turn:%d\n",turn);    __u16 LEDnum;  switch (*argv[3]) {    case '0':      LEDnum = 0x04;          break;    case '1':      LEDnum = 0x08;      break;    case 'A':      LEDnum = 0x0C;      break;      default:    printf("arg:%c to this cmd is error!\n",*argv[3]);        exit(-1);      }   do {     //ioctl(fd,MN_LEDoff,LEDnum);     ioctl(fd,MN_LEDon,LEDnum);     sleep(delay);     ioctl(fd,MN_LEDoff,LEDnum);     sleep(delay);     turn--;        } while(turn);   ioctl(fd,MN_LEDoff,0x0C);   close(fd);   return 0;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?