This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CC2540做蓝牙HID键盘有关数据返回的问题

Other Parts Discussed in Thread: CC2541

在例程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鼠标的功能,那我的问题也就解决了!