stm32的HID键盘冷启动时识别的实现事项

1. 大家实现基于stm32的HID键盘,一般参考stm32官方带的文档,和网上《圈圈教你玩USB》书籍和硬件设计,后者是基于USB接口芯片PDIUSBD12实现的,书中在第三章和第四章很好把USB的鼠标和键盘描述符解释的非常详尽

资料备份在:http://download.csdn.net/detail/dijkstar/8871079

另一个“百合电子EasyUSB51”的资料备份:http://download.csdn.net/detail/dijkstar/6022445


2. 基于stm32实现的HID键盘,试验时,不能在PC开机阶段(即按Del键或F12键进入BIOS阶段)按键不被识别,解决办法是,修改usb_prop.c文件的函数如下:

RESULT CustomHID_NoData_Setup(u8 RequestNo)
{
  if ((Type_Recipient == (CLASS_REQUEST | INTERFACE_RECIPIENT))
      && (RequestNo == SET_PROTOCOL))
  {
    return CustomHID_SetProtocol();
  }
  //添加此句,才能在BIOS阶段找到键盘
  else if ((Type_Recipient == (CLASS_REQUEST | INTERFACE_RECIPIENT))
      && (RequestNo == SET_IDLE))
  {
    return CustomHID_SetProtocol();
  }
  else
  {
    return USB_UNSUPPORT;
  }
}



  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
项目介绍 1、方案主题:基于STM32+MPU9250的重力感应游戏控制器 2、方案功能:使用STM32CubeMX配置了Nucleo-L476RG,开发了USB HID复合设备用于体感游戏控制,板载STM32L476RG ARM核微控制器支持USB2.0 全速设备,通过I2C读取九轴姿态传感器-MPU9250(三轴加速度、三轴陀螺仪、三轴磁力计),使用高效的传感器数据融合算法、姿态解算算法,实现体感控制PC游戏,精度高,超低延迟,可作为虚拟自行车等控制器,支持硬件定制。 硬件:带USB控制器的STM32都可以,我这里使用的是Nucleo-L476RG,芯片是STM32L476RG,支持USB2.0全速模式,其中 PA12---->USB_DP PA11---->USB_DM 软件:使用STM32CubeMX配置 直接用USB线连接到电脑USB即可,按照USB规范,USB线里面的绿线为DP(D+),白线为DM(D-),全速设备是要在DP线加上拉1.5K电阻的,由于STM32的USB外设内部有这个电阻,因此无需外加上拉电阻。 配置过程不解释了,查看附件的PDF文档即可 工作原理介绍 1、硬件组成与介绍: Demo板采用了Nucleo-L476RG板卡,板载STM32L476RG高性能ARM Cortex-M4内核MCU,主频高达80MHz,1MB Flash、128KB SRAM,支持浮点DSP;8个轻触按键连接到了STM32的GPIO;MPU9250采用GY-91模块,通过I2C接口连接到STM32,MPU9250由应美盛(InvenSense)出品,是MPU6050的升级版,第二代9轴组合传感器将6轴惯性测量单元(三轴加速度计+三轴陀螺仪)和三轴轴磁力计集成于3 mm x 3 mm QFN封装中。 2、此项目中STM32的功能: 通过I2C接口采集传感器数据;强大的运算性能和浮点DSP的支持保证了数据融合、姿态解算等算法的高效、准确运行;控制LED作为状态指示;扫描按键状态;通过USB接口与PC机通信。 3、软件流程介绍: 采用前后台系统,主要分为三大部分,一是外设初始化,二是数据处理,三是业务逻辑处理。使用STM32CubeMX配置生成了USB HID复合设备,是一个USB键盘和USB鼠标、2个游戏Pad,配置方法和测试工程源码点我。或者“相关文件”直接下载 如下图,可看到USB枚举成功为键盘、鼠标、游戏控制器复合设备。 程序流程图如下: 实物与演示 1、实物图片与说明: Demo板说明:Demo板配置了9个按键,Nucleo板载蓝色按键为模式切换按键,开机板载LD2绿色LED快闪表明此为锁定状态,控制器不起作用,短按1下,切换到按键控制模式,LD2慢闪,再短按切换到体感控制模式,LD2 1s闪烁一次,再按切换到锁定状态;板载4个大按键,依次映射为WASD,4个小按键依次映射为R、shift、鼠标左键、鼠标右键。 2、演示视频: QQ飞车测试: https://player.youku.com/player.php/sid/XMjUyOTY3ND... 坦克世界测试: https://player.youku.com/player.php/sid/XMjUyOTY5NT...
### 回答1: HID(Human Interface Device)意为人机接口设备,是指可以与计算机人机接口进行交互的设备。STM32 HID键盘是一种基于STM32单片机的HID设备,用于模拟键盘信号与计算机进行通信。 STM32 HID键盘的工作原理是通过将键盘按键信号转换成USB协议的数据包,然后通过USB接口传输给计算机。由于STM32单片机支持USB协议,因此可以作为HID键盘的主控芯片。 通过STM32 HID键盘,我们可以实现STM32单片机作为一个键盘设备连接到计算机并模拟键盘输入。在键盘输入方面,我们可以通过对STM32单片机编程,控制相关引脚的电平变化,发送对应键值的信号给计算机。计算机会根据接收到的信号来识别对应的键值,并对应执行相应的操作。 使用STM32 HID键盘的好处是灵活性高,可以通过编程来自定义键盘输入,根据实际需要发送不同的键值给计算机。此外,STM32单片机的强大计算能力和丰富的外设资源,使得我们可以更加自由地控制键盘的功能。 综上所述,STM32 HID键盘是一种基于STM32单片机的HID设备,通过模拟键盘信号与计算机进行交互。它的工作原理是将键盘按键信号转换成USB协议数据包,并通过USB接口传输给计算机。使用STM32 HID键盘可以实现STM32单片机作为键盘设备,灵活地控制键盘输入,并根据需要发送不同的键值给计算机。 ### 回答2: STM32 HID键盘是一种基于STM32微控制器的人机交互设备,能够模拟普通键盘的功能。它通过USB或蓝牙等接口与计算机或其他设备连接,实现通过按键向计算机发送字符数据。 STM32 HID键盘的原理是通过将按键信号转化为相应的键码,并通过USB或蓝牙传输给计算机。在STM32的固件中,可以通过编程配置GPIO引脚作为按键输入,并使用相应的库函数读取按键状态。通过软件可以实现对按键的检测和按键事件的处理。 在使用STM32 HID键盘,首先需要配置STM32的引脚,将其设置为输入,并通过外部上拉或下拉电阻拉高或拉低。然后,使用库函数读取引脚状态,判断按键是否被按下。如果按键被按下,将对应的键码存储在一个缓冲区中,并通过USB或蓝牙接口传输给计算机。计算机收到键码后,就可以根据键码解析出相应的字符或者控制命令。 通过编程可以实现多个按键的同检测和处理,并根据需求定义特殊功能键,如Ctrl、Shift和Alt等键。此外,还可以实现键盘灯、键盘音效等功能,增强用户体验。 总而言之,STM32 HID键盘是一种通过STM32微控制器实现的人机交互设备,能够模拟普通键盘的功能。它可以与计算机或其他设备连接,通过按键向计算机发送字符数据,广泛应用于电脑外设、嵌入式系统等领域。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值