在例程HIDAdvRemote基础上通过串口发送数据,调用HID的键盘与鼠标函数实现了鼠标与键盘的功能。
遇到的问题是,键盘发送字母大写按键值的时候,CC2541不能收到上位机的HID数据来控制键盘CapsLk这个灯。
HIDAdvRemote例程本来是没有控制键盘灯的函数,我从HIDEmuKbd把对应的控制灯的函数移植过来了:
static uint8 hidAdvRemoteRcvReport( uint8 len, uint8 *pData )
{
//No lEDS on the remote control
//return SUCCESS;
//verify data length
if ( len == HID_LED_OUT_RPT_LEN )
{
//set keyfob LEDs
HalLedSet( HAL_LED_1, ((*pData & LED_CAPS_LOCK) == LED_CAPS_LOCK));
HalLedSet( HAL_LED_2, ((*pData & LED_NUM_LOCK) == LED_NUM_LOCK));
//LED_SCROLL_LOCK
HalLedSet( HAL_LED_3, ((*pData & LED_SCROLL_LOCK) == LED_SCROLL_LOCK) );
return SUCCESS;
}
else
{
return ATT_ERR_INVALID_VALUE_SIZE;
}
}
//////////////////////////////////////////////////////////////////////////////////////
HIDEmuKbd这个例程是可以做键盘的,对应的键盘灯也可以正常控制,这个我也实现了。
但是这个例程没有HID的鼠标功能!
1 哪位大神能告诉我在HIDAdvRemote实现键盘灯的控制!
2 或者告诉我如何修改HIDEmuKbd这个例程添加HID鼠标的功能,那我的问题也就解决了!
guang hu3:
哪位能帮我解决问题,我愿意发红包感谢!困扰了很久了!
da qin zheng sheng:
可以实现鼠标功能,不过没有实现键盘,鼠标同时使用。
da qin zheng sheng:
回复 da qin zheng sheng:
需要修改设备描述符。
guang hu3:
回复 da qin zheng sheng:
大侠能说清楚点吗。是HIDEmuKbd实现鼠标需要修改描叙符吗