arm的linux 按键驱动,ARM Linux 驱动Input子系统之按键驱动测试

#include #include#include#include#include

voidkeyboard_test()

{int count_sw1 = 0;int count_sw2 = 0;int count_sw3 = 0;int count_sw4 = 0;int fd=open("/dev/input/event0",O_RDWR);if( fd <= 0)

{

printf("Can not open keyboard input file");

}struct input_event *event;char buf[128] = {0};

fd_set rfds;

FD_ZERO(&rfds);

FD_SET(fd,&rfds);while(1)

{int ret = select(fd + 1,&rfds, NULL,NULL,NULL);if(ret < 0)continue;if( FD_ISSET(fd, &rfds) )

{int readn = read(fd, buf, sizeof(structinput_event));if (readn <= 0)

{

printf("uart read error %d", readn);continue;

}struct input_event *my_event=(struct input_event*)buf;if(my_event->type ==EV_KEY)

{switch( my_event->code )

{case 256:

printf("This is a button:%d %d", my_event->code,my_event->value);

count_sw1++;if(count_sw1==1)

{

system("echo 1 > /sys/class/leds/zyrD1:green:usr0/brightness");

}else if(count_sw1==4)

{

system("echo 0 > /sys/class/leds/zyrD1:green:usr0/brightness");

count_sw1=0;

}break;case 257:

printf("This is a button:%d %d", my_event->code,my_event->value);

count_sw2++;if(count_sw2==1)

{

system("echo 1 > /sys/class/leds/zyrD2:green:usr1/brightness");

}else if(count_sw2==4)

{

system("echo 0 > /sys/class/leds/zyrD2:green:usr1/brightness");

count_sw2=0;

}break;case 258:

printf("This is a button:%d %d", my_event->code,my_event->value);

count_sw3++;if(count_sw3==1)

{

system("echo 1 > /sys/class/leds/zyrD3:green:heartbeat/brightness");

}else if(count_sw3==4)

{

system("echo 0 > /sys/class/leds/zyrD3:green:heartbeat/brightness");

count_sw3=0;

}break;case 259:

printf("This is a button:%d %d", my_event->code,my_event->value);

count_sw4++;if(count_sw4==1)

{

system("echo 1 > /sys/class/leds/zyrD4:green:mmc0/brightness");

}else if(count_sw4==4)

{

system("echo 0 > /sys/class/leds/zyrD4:green:mmc0/brightness");

count_sw4=0;

}break;default:break;

}

}

}

}

}intmain()

{

keyboard_test();return 0;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值