蓝牙键盘按键添加方法

本文档介绍了如何在Linux内核中为蓝牙键盘添加新的按键映射,具体修改了`hid-input.c`文件,增加了对KEY_SCREEN、KEY_BRIGHTNESSDOWN和KEY_BRIGHTNESSUP的映射清除。详细步骤包括定位到内核源码相关部分并进行编辑,然后描述了处理输入事件的内核函数流程。
摘要由CSDN通过智能技术生成

修改:

--- a/kernel/drivers/hid/hid-input.c
+++ b/kernel/drivers/hid/hid-input.c
@@ -620,7 +620,11 @@ static void hidinput_configure_usage(struct hid_input *hidi
case 0x289: map_key_clear(KEY_REPLY); break;
case 0x28b: map_key_clear(KEY_FORWARDMAIL); break;
case 0x28c: map_key_clear(KEY_SEND); break;
-
+//Roger add for blue tooth keyboard
+ case 0x1b1: map_key_clear(KEY_SCREEN); break;
+ case 0x30a: map_key_clear(KEY_BRIGHTNESSDOWN); break;
+ case 0x30b: map_key_clear(KEY_BRIGHTNESSUP); break;
+//End of Roger add
default: goto ignore;
}
break;

通过是系统崩溃获取追踪信息:
在kernel/drivers/input/input.c:
void input_event(struct input_dev *dev,
unsigned int type, unsigned int code, int value)
{
unsigned long flags;
        //add by cvt_hgd
       (int *) 0 =0;
       //the end by cvt_hgd

if (is_event_supported(type, dev->evbit, EV_MAX)) {


spin_lock_irqsave(&dev->event_lock, flags);
双模蓝牙键盘通常是指支持经典蓝牙(BLE)和传统的蓝牙(Bluetooth Classic)两种模式的键盘,这种设计允许用户在多种设备上无缝连接,无论是旧设备还是新设备。在Keil(一款嵌入式开发工具)中编写处理双模蓝牙键盘的代码,主要包括以下几个步骤: 1. **硬件配置**:确保你的Keil项目已配置好蓝牙模块,如nRF52系列、BlueNRG等,并熟悉其驱动库。 2. **软件包引入**:添加蓝牙通信相关的库,比如Arm Mbed TLS库用于低功耗蓝牙(LPBW),或者是Keil提供的蓝牙SDK。 3. **初始化设置**:编写代码初始化蓝牙模块,包括配对模式的选择(经典模式或BLE模式),并获取键盘服务(SERVICE_ID_KEYBOARD)。 4. **服务及特征操作**:通过GATT(通用属性协议)API,创建和管理键盘的服务(如输入报告服务)以及需要的特性(如按键报告特性)。 5. **事件处理函数**:为输入报告特性注册回调函数,当接收到键值数据时进行解析并处理。 6. **蓝牙连接管理**:处理蓝牙设备的连接、断开、连接请求等事件,并相应地调整键盘的工作状态。 7. **错误处理**:捕获并处理可能出现的蓝牙连接错误,如超时、接收失败等。 ```c // 示例代码片段 void ble_keyboard_event_handler(uint8_t event_type, uint8_t* p_data, uint16_t data_len) { if (event_type == BLE_GAP_EVT_CONNECTED) { // 连接成功,开始接收键盘数据 } else if (event_type == BLE_GATTS_EVT_WRITE) { process_key_input(p_data, data_len); } } void start_bluetooth() { ble_set_mode(BLE_MODE_BLE); // 设置为BLE模式 ble_gatts_register_services(); // 注册服务 ble_gap_scan_enable(); // 开始扫描 } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值