微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > CC2541 BLE Keyboard + Mouse 的應用 (得知系統 NumLock LED 狀態)

CC2541 BLE Keyboard + Mouse 的應用 (得知系統 NumLock LED 狀態)

时间:10-02 整理:3721RD 点击:

您好:

小弟目前使用 1.3.2 版 FW,Profile 是使用 HIDEmuKbd,測試Keyboard + Mouse 的HID 宣告無法得到系統 LED 的狀態

範例程式中有註冊 hidEmuKbdRptCB

static hidDevCB_t hidEmuKbdHidCBs =
{
  hidEmuKbdRptCB,
  hidEmuKbdEvtCB,
  NULL
};

所以當系統的 NumLock  有狀態變化的時候會進入到hidEmuKbdRptCB

static uint8 hidEmuKbdRptCB( uint8 id, uint8 type, uint16 uuid,
                             uint8 oper, uint8 *pLen, uint8 *pData )

接著會進入到 hidEmuKbdRcvReport 去點LED的狀態,關於這點在HIDEmuKbd範例程式中是沒有問題的

status = hidEmuKbdRcvReport( *pLen, pData );

但是由於此範例是Keyboard Only 的 HID Service

所以小弟將  HidKbd_AddService 改成 HidKbM_AddService之後

發現當系統的 NumLock  有狀態變化的時候,不會進入到hidEmuKbdRptCB

請問該怎麼改善這個問題

附件為小弟測試的code

Hi Mars,

你有照 hidkbdservice.c 中HidKbd_AddServce() 来添加 HidKbM_AddService() 吗?

特别是  status = GATTServApp_RegisterService( hidAttrTbl, GATT_NUM_ATTRS( hidAttrTbl ), &hidKbdCBs ); 里面的 hidKbdCBs .

请确认一下.

Hi Yan:

我直接使用hidkbmservice.c 裡的 HidKbM_AddService() 添加在 hidemukbd.c

Add Path : BLE-CC254x-1.3.2\Projects\ble\Profiles\HIDDevKbM

在 hidkbmservice.c 這裡面有註冊    

// Register GATT attribute list and CBs with GATT Server App
status = GATTServApp_RegisterService( hidAttrTbl, GATT_NUM_ATTRS( hidAttrTbl ), &hidKbdMsCBs );

// Service Callbacks
CONST gattServiceCBs_t hidKbdMsCBs =
{
  HidDev_ReadAttrCB,  // Read callback function pointer
  HidDev_WriteAttrCB, // Write callback function pointer
  NULL                // Authorization callback function pointer
};

替換成下面也一樣

// Register GATT attribute list and CBs with GATT Server App
status = GATTServApp_RegisterService( hidAttrTbl, GATT_NUM_ATTRS( hidAttrTbl ), &hidKbdCBs );

// Service Callbacks
CONST gattServiceCBs_t hidKbdCBs =
{
  HidDev_ReadAttrCB,  // Read callback function pointer
  HidDev_WriteAttrCB, // Write callback function pointer
  NULL                // Authorization callback function pointer
};

目前測試 Mouse & Keyboard & Consumer 功能都可以送的出來,唯讀Keyboard Led狀態無法得知

   你们好!

        我现在也正在学习2540。

        想模拟一个HID设备, 这是需要进行读和写功能的, 目前参考键盘的例程。

        可知道如何进行设备到PC端是数据传输,但是无法从PC端发送数据到设备上。

        这与键盘上Keyboard Led 的功能相似,请问如Mars的操作, 还有哪一步是忽略的, 请指明一下。

        谢谢。

您好,现在我也是遇到了这个问题,时间过去这么久了,不知道您是否已经解决了这个问题呢?如果有解决办法,望不吝赐教,万分感激!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top