最近在配置遥控器的时候发现新增的按键应用层始终获取不到,测试已经定义的也只有个别能用,最后追代码才发现struct input_dev对象中keybit未初始化,导致按键上报到系统之后无法继续上传。知道原因之后就很好改了,在初始化struct input_dev的地方初始化下keybit变量就可以了,注意keybit是一个unsigned int数组,其中每一个bit对应一个定义的按键,对应bit为1表示支持该按键,我下面把所有位全部置1表示都支持,改完就可以获取到了。
int i,count;
(KEY_CNT % 32 == 0)?(count = KEY_CNT / 32):(count = KEY_CNT / 32 + 1);
for(i = 0;i < count;i++)
{
dev->keybit[i] = 0xffffffff;
}