查看: 1096|回复: 0

LinkSprite Mbed BLE Sensors tag开发板之HID蓝牙键盘

[复制链接]

该用户从未签到

发表于 2016-11-25 09:08:24 | 显示全部楼层 |阅读模式
分享到:
        申请试用这个开发板的目的就是研究一下HID蓝牙键盘,为后续DIY蓝牙机械键盘做准备。只可惜此开发板只能试用两周,用后需归还。
        接下来介绍一下在HID键盘方面的一些使用情况。
一、概述
整个键盘方案如下:
        STM32作为主控,进行按键扫描,然后将键值通过串口发送给BLE设备,BLE设备再发送给BLE主机。STM32同时也可以通过USB,以HID协议发送键值,此时STM32被识别成键盘。
        整个实验中,LinkSprite Mbed BLE Sensors tag开发板作为BLE从机,PC作为BLE主机。由于从机是BLE,非传统蓝牙,所以要求主机支持BLE。目前新出的PC基本都是双模的,即支持传统蓝牙,也支持低功耗蓝牙。
        这里以一个开发板来做演示,按下开发板上的按键,将在设备上打印出大写字母A。类似于按下键盘的A键。
二、硬件准备

  • STM32开发板

  • LinkSprite Mbed BLE Sensors tag开发板

  • 杜邦线

图 1

三、软件

1.主控制器-----STM32
        在编写代码前,需要了解一下USB-HID协议,主要是明白如何将键值填充到协议里面并发送。在一包数据中,有8个字节需要用户处理。第一个字节为特殊字节,包含shift、ctrl等功能键是否按下的信息,后7个字节为键值。程序中需要处理的就是将对应按键的键值填充到这个8字节的数组中。除了第一字节,后面的7字节无顺序关系。
       STM32部分代码比较简单,检测按键,然后将键值通过串口发送给BLE开发板。同时STM32被识别为HID设备。如下图:


图 2

        这里需要注意的是,通过USB发送一包数据完成后,若无键按下,需要发送一包全0数据,表示按键释放,否则,会被识别成长按键。
2.BLE-HID
        打开官方SDK的“ble_app_hids_keyboard”例程,在串口接收中断中处理STM32发送的键值。然后通过蓝牙转发。代码如下:
void UART0_IRQHandler(void)
{
static uint8_t keybuf[8];
static uint8_t i=0;
keybuf = simple_uart_get();
i++;
if( i > 7)
{
  i=0;
  keys_send(8,keybuf);
}
}
四、现象
        这里使用一款支持蓝牙4.0的平板与开发板连接。打开平板的蓝牙,进行扫描,搜索到名为“Nordic_Keyboard”的设备,点击连接,如下图:


图 3

        当配对成功之后,平板显示已连接,同时开发板上的红色LED熄灭,如下图:


图 4

        当按下开发板上的按键后,PC上打印出大写字母A,同时平板上也打印出A。如下图所示:


图 5

五、总结
LinkSprite Mbed BLE Sensors tag开发板板载调试器,用户拿到手后,只需要一根microUSB线即可开发。并且Nordic官方提供丰富的参考资料及例程,大大降低了开发难度,总的来说NRF51822比较适合蓝牙入门学习。

最后感谢爱板网提供本次试用。
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /2 下一条

手机版|小黑屋|与非网

GMT+8, 2024-4-19 14:38 , Processed in 0.120048 second(s), 17 queries , MemCache On.

ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

苏公网安备 32059002001037号

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.