stm32 hid自定义接收发送程序开发过程记录

cubleMX配置如下

修改端点描述符一次传输的数据大小

 根据cubelMX标准在这里修改

 编译错误

 直接修改(因为没有使用nodef )编译通过

 修改报告描述符(默认的描述符无法传输数据)

 

 参考:USB协议详解第10讲(USB描述符-报告描述符)-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/weiaipan1314/article/details/112504129

 USB鼠标HID描述符以及数据格式_hidusb输出的数据类型-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/wingceltis/article/details/103114696

 实际输入的内容

对应代码

0x05, 0x01, // USAGE_PAGE (Generic Desktop)
    0x09, 0x00, // USAGE (none)
    0xa1, 0x01, // COLLECTION (Application)   
    0x05, 0x01, // #1 USAGE_PAGE (Generic Desktop)
    0x09, 0x30, // USAGE(x)
    0x15, 0x00, // LOGICAL_MINIMUM (0)
    0x25, 0xFF, // LOGICAL_MAXIMUM (255)
    0x75, 0x08, // REPORT_SIZE (8)
    0x95, 0x40, // REPORT_COUNT (64)
    0x81, 0x02, // INPUT (Data,Var,Abs)
    0x05, 0x01, // #2 USAGE_PAGE (Generic Desktop)
    0x09, 0x31, // USAGE(y)
    0x15, 0x00, // LOGICAL_MINIMUM (0)
    0x25, 0xFF, // LOGICAL_MAXIMUM (255)
    0x75, 0x08, // REPORT_SIZE (8)
    0x95, 0x40, // REPORT_COUNT (64)
    0x91, 0x02, // OUTPUT (Data,Var,Abs)
    0xc0 // END_COLLECTION

修改设备描述符大小为35(上面一共35个字符)

hid收发工具

【分享】一个HID数据收发调试工具 (stmicroelectronics.cn)icon-default.png?t=N7T8https://shequ.stmicroelectronics.cn/thread-613811-1-1.html

使用CubeMX 生成 USB从机 Custom HID 工程(STM32F407ZE )_stm32f407 hid bug-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/u014285530/article/details/117931003

 修改发送函数

 修改发送buf大小(注意必须在此处修改)

 错误的修改位置(由于原有模板已经在外部定义了此参数,因此不能再这里修改,否则会出错,程序死机)

 正确配置之后的通信测试

参考链接stm32 USB系列-HID开发_哔哩哔哩_bilibiliicon-default.png?t=N7T8https://www.bilibili.com/video/BV1TR4y1V7ps/?spm_id_from=333.788&vd_source=e821a225c7ba4a7b85e5aa6d013ac92e

特此记录

anlog

2024年4月26日

  • 18
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
STM32是一款广泛应用于嵌入式系统开发的微控制器,它支持使用自定义协议发送二进制文件。在这个过程中,我们可以使用一些文件传输协议,比如XMODEM或者YMODEM等,通过串口或者网络接口将二进制文件发送到另一台设备或者主机。 要实现这一功能,我们首先需要在STM32的固件中集成相应的文件传输协议库,这样才能够在微控制器上实现二进制文件的发送功能。然后,我们需要在主机或者另一台设备上同样实现相同的文件传输协议,以便于接收STM32发送过来的二进制文件。 在实际的应用中,我们需要通过编程来实现文件的读取和发送,首先在STM32上读取待发送的二进制文件,然后将文件数据按照自定义协议进行打包,并通过串口或者网络接口发送到目标设备。在目标设备上,我们需要实现对应的接收逻辑,来解析并保存被发送的二进制文件。 需要注意的是,在使用自定义协议发送二进制文件时,我们需要仔细处理数据的校验和确认机制,以确保文件能够完整地发送接收。同时,考虑到数据传输的稳定性和效率,我们也需要在代码中添加一些错误处理和重传机制,以应对在数据传输过程中可能出现的问题。 总而言之,通过STM32使用自定义协议发送二进制文件是一项相对复杂的任务,需要我们充分理解文件传输协议的原理,并在实际的应用中经过严格的测试和验证,确保数据的可靠性和稳定性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值