第四章:STM32MxCube生成USB程序---模拟键盘(从机)

本文介绍了如何将STM32的鼠标从机程序转换为键盘从机程序,主要涉及修改工程、添加键盘键值代码、调整USB HID设备配置和描述符,以及更新PID/VID以确保电脑正确识别。
摘要由CSDN通过智能技术生成

 要把鼠标从机改成键盘从机,只需要在鼠标从机源码的基础上进行更改即可。这里以stm32f103c8t6为例讲解。

更改如下:

方法一:

1、打开原来的工程(鼠标工程)由STM32Cube生成。



1、在main.c函数中,添加键盘键值代码, 这里模拟空格键

空格键:

        uint8_t txbuffer[8]= {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};

uint8_t sendbuffer[8]={0x00,0x00,0x2c,0x00,0x00,0x00,0x00,0x00};

某按键:

if(GPIO_PIN_RESET==HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_1))//PTT按下,按下为低
{
    USBD_HID_SendReport(&hUsbDeviceFS,sendbuffer,8);//发送报文
}
else if(GPIO_PIN_SET==HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_1))
{
    USBD_HID_SendReport(&hUsbDeviceFS,txbuffer,8);//发送报文
}



3,在usb_hid.c中,改核心实现代码(将核心从鼠标换成键盘),即修改usb配置数组或修改USB HID设备配置描述符。


4,修改USB HID设备描述符(在usb_hid.c中)


5,定义键盘描述符(在usb_hid.c中)

__ALIGN_BEGIN static uint8_t HID_KEYBOARD_ReportDesc[HID_KEYBOARD_REPORT_DESC_SIZE]  __ALIGN_END =
{
0x05, 0x01,                    // USAGE_PAGE (Generic Desktop)
    0x09, 0x06,                    // USAGE (Keyboard)
    0xa1, 0x01,                    // COLLECTION (Application)
    0x05, 0x07,                    //   USAGE_PAGE (Ke

  • 8
    点赞
  • 73
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值