您当前的位置:首页 > 电脑百科 > 硬件技术 > 硬件知识

STM32CUBEIDE 配置USBHID自定义设备

时间:2022-03-15 11:38:37  来源:  作者:Runningwater

STM32CubeMX USB-HID

RCC的HSE选择BYPASS Clock Source, USB时钟为48MHz

STM32CUBEIDE 配置USBHID自定义设备

 


STM32CUBEIDE 配置USBHID自定义设备

 

修改usbd_custom_hid_if.c文件添加通讯代码:

__ALIGN_BEGIN static uint8_t CUSTOM_HID_ReportDesc_FS[USBD_CUSTOM_HID_REPORT_DESC_SIZE] __ALIGN_END =

{

0x06, 0xA0, 0xFF, //用法页(FFA0h, vendor defined)

0x09, 0x01,//用法(vendor defined)

0xA1, 0x01,//集合(Application)

0x09, 0x02, //用法(vendor defined)

0xA1, 0x00,//集合(Physical)

0x06, 0xA1, 0xFF, //用法页(vendor defined)

//输入报告

0x09, 0x03, //用法(vendor defined)

0x09, 0x04,//用法(vendor defined)

0x15, 0x80,//逻辑最小值(0x80 or -128)

0x25, 0x7F,//逻辑最大值(0x7F or 127)

0x35, 0x00,//物理最小值(0)

0x45, 0xFF,//物理最大值(255)

0x75, 0x08,//报告长度Report size (8位)

0x95, 0x40,//报告数值(64 fields)

0x81, 0x02,//输入(data, variable, absolute)

//输出报告

0x09, 0x05,//用法(vendor defined)

0x09, 0x06,//用法(vendor defined)

0x15, 0x80,//逻辑最小值(0x80 or -128)

0x25, 0x7F,//逻辑最大值(0x7F or 127)

0x35, 0x00,//物理最小值(0)

0x45, 0xFF,//物理最大值(255)

0x75, 0x08,//报告长度(8位)

0x95, 0x40,//报告数值(64 fields)

0x91, 0x02,//输出(data, variable, absolute)

0xC0,//集合结束(Physical)

0xC0//集合结束(Application)

};

USBD_CUSTOM_HID_REPORT_DESC_SIZE = 52

同时修改usbd_customhid.h文件中的发送与接收长度

#define CUSTOM_HID_EPIN_SIZE 0x40

#define CUSTOM_HID_EPOUT_SIZE 0x40

再次编译并写入,系统会枚举到USB,用
USBD_CUSTOM_HID_SendReport()函数就可以发送数据,第一步完成了。接收数据的函数也在usbd_customhid.c文件中,生成 的接收函数USBD_CUSTOM_HID_DataOut()需要进一步修改。定义个接收缓冲区和接收计数器。

unsigned char USB_Recive_Buffer[64];

volatile unsigned char USB_Received_Count = 0;

再修改接收函数成这个样子:

static uint8_t USBD_CUSTOM_HID_DataOut (USBD_HandleTypeDef *pdev, uint8_t epnum)

{

USB_Received_Count = USBD_GetRxCount( pdev,epnum );

USBD_LL_PrepareReceive( pdev, CUSTOM_HID_EPOUT_ADDR , USB_Recive_Buffer, sizeof( USB_Recive_Buffer ) );

return USBD_OK;

}

USB接收是在USB事件中处理的,只需要盯着USB_Received_Count变量就行了,有了数据就从USB_Recive_Buffer里直接拿。

在mAIn.c中实现的数据回传,上位机发啥返啥:

#include "usbd_customhid.h"

extern volatile unsigned char USB_Received_Count;

extern unsigned char USB_Recive_Buffer[64];

while( 1 )

{

if (USB_Received_Count>0) //收到数据后返回数据

{

USBD_CUSTOM_HID_SendReport( &hUsbDeviceFS, USB_Recive_Buffer, sizeof(USB_Recive_Buffer) );

USB_Received_Count = 0;

}

}



Tags:USBHID   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
STM32CUBEIDE 配置USBHID自定义设备
STM32CubeMX USB-HIDRCC的HSE选择BYPASS Clock Source, USB时钟为48MHz 修改usbd_custom_hid_if.c文件添加通讯代码:__ALIGN_BEGIN static uint8_t CUSTOM_HID_ReportDesc_...【详细内容】
2022-03-15  Search: USBHID  点击:(1080)  评论:(0)  加入收藏
▌简易百科推荐
华为笔记本将接入盘古大模型!全新华为MateBook X Pro即将发布
快科技4月10日消息,华为官方宣布,华为将于4月11日举办新品发布会。据了解,此次发布会将推出全新的华为MateBook X Pro,而预热海报的主题是“轻且强”。这里的“强”不仅仅是指性...【详细内容】
2024-04-10    快科技  Tags:华为笔记本   点击:(9)  评论:(0)  加入收藏
走进光纤世界:揭秘光纤接口的四大类型
光纤技术作为现代通信的基石,已经广泛应用于各种数据传输场景中。它以高速率、长传输距离、抗干扰性强、低衰减以及带宽占用小等优点,成为了数据通信领域中的重要物理层连接方...【详细内容】
2024-04-10  胜为光通信服务商    Tags:光纤接口   点击:(4)  评论:(0)  加入收藏
什么是光纤?光纤的原理是什么?你能想象没有光纤通讯的世界么?
一根像头发丝一样细的光纤改变了什么?说它改变了世界,一点也不为过。还记得老式的电脑传输吗?你下载一首歌可能需要3分钟,一部电影可能需要两小时,那时候叫做“拨号上网”;后来铜...【详细内容】
2024-04-10  知识TNT    Tags:光纤   点击:(7)  评论:(0)  加入收藏
五个多屏使用笔记本的注意事项
你是否发现自己需要频繁地在窗口之间切换,或者在你的笔记本电脑显示屏上挤满了多个窗口?是时候考虑购买第二个显示器了。 多个显示器可以显著提高工作效率,因为你有更多的屏幕...【详细内容】
2024-03-20  梁佳乐  微信公众号  Tags:笔记本   点击:(15)  评论:(0)  加入收藏
开源鸿蒙适配芯片到底都做了哪些工作?
随着智能设备市场的不断扩大和技术的进步,鸿蒙操作系统成为了备受瞩目的开源项目。作为一个全场景智能生态的基础,鸿蒙不仅仅是一个操作系统,还涉及到硬件层面的适配。然而,开源...【详细内容】
2024-01-16  触觉智能    Tags:鸿蒙   点击:(59)  评论:(0)  加入收藏
电脑主板上的纽扣电池没电时,会出现什么问题呢?
什么是纽扣电池?电脑主板上的纽扣电池通常被称为CMOS电池。是用于提供电源给主板上的实时时钟(RTC)和存储BIOS设置数据的小型电池。 纽扣电池的寿命是多久?纽扣电池的寿命通常在...【详细内容】
2024-01-14  新视力工控电脑  今日头条  Tags:纽扣电池   点击:(121)  评论:(0)  加入收藏
微软将增加Copilot专用按键 推动人工智能时代到来
微软宣布将新增Copilot键,专门用于Windows PC键盘上的人工智能(AI)助手。这意味着新的一年里,Windows将迎来重大转变,走向更为智能化的未来,让人工智能从硬件到软件全方位融入,打造...【详细内容】
2024-01-05  PChome电脑之家    Tags:Copilot   点击:(137)  评论:(0)  加入收藏
AI领衔!2023年数码硬件大事件盘点 哪个技术让你印象深刻
2023年在数码硬件领域里许许多多令人兴奋的新产品和新技术正式问世,给玩家用户们都带来了全新的体验。在这篇文章中,我们将进行2023年的数码大事件进行盘点,看看这其中哪个给你...【详细内容】
2024-01-03    中关村在线  Tags:数码硬件   点击:(49)  评论:(0)  加入收藏
双头Type-C接口:解析充电方向的奥秘
随着科技的飞速发展,电子设备之间的连接与充电方式也在不断地革新。其中,Type-C接口以其高效、便捷的特性,逐渐成为了主流。特别是双头Type-C线,更是为用户带来了前所未有的便利...【详细内容】
2024-01-02  小米地瓜    Tags:Type-C   点击:(157)  评论:(0)  加入收藏
关机、睡眠、休眠,到底选哪个?
大家每天用完电脑呢,都会面临关机的选择,但是点击了“关机”图标后,会出现下图中的这么多的选项:睡眠、休眠、关机、重启,他们到底有什么差别呢?睡眠模式:将操作系统当前的操作保存...【详细内容】
2023-12-29  ASUS华硕西南    Tags:关机   点击:(87)  评论:(0)  加入收藏
相关文章
    无相关信息
站内最新
站内热门
站内头条