2--STM32+USB移植+HID 与AUDIO类MIDI设备组成的复合设备

本文介绍了如何将STM32F103开发成一个复合USB设备,包含HID和AUDIO_MIDI功能。通过配置USB固件库、修改设备描述符和端点地址,实现了与上位机及音乐DAW软件的通信。调试过程中使用了usbtrace3.0或BusHound,文章提供了详细的移植步骤和参考资源。
摘要由CSDN通过智能技术生成

前期准备:

一、硬件资源:STM32F103,USB-FS固件库。

链接:

STM32 之 标准外设版USB驱动库详解(架构+文件+函数+使用说明+示例程序)

https://blog.csdn.net/ZCShouCSDN/article/details/78936456?utm_source=blogxgwz1

二、调试软件:usbtrace3.0或者BusHound,用于看USB设备的信息。KEIL编译环境-用于开发。

后续相关工作:

(1)用STM32CubeMX配置,具体实现其它的HID,自定义虚拟串口等实验;

链接:利用STM32CubeMX生成BID通信

https://www.cnblogs.com/libra13179/p/6891685.html?utm_source=itdadao&utm_medium=referral

(2)了解USB的枚举配置过程。

链接:

 

三、重点掌握的知识点

(1)USB设备描述符,

(2)STM32F103的USB-FS固件库相关架构;

(3)USB的数据发送与接收,即通信原理;

本次USB做成复合设备,HID+AUDIO_MIDI设备,HID与上位机通信,MIDI设备与主流音乐DAW软件通信

(4)调试USB数据包的过程;

(5)移植步骤:

--配置好相关的KEIL工程,或者STM32CubeMX配置;

--添加USB固件库里面的HID工程-参考正点原子的STM32F1开发指南-库函数版本_V3.1;

--修改相应的usb描述符,VID/PID等,可以添加原子自己的USB启动通用函数;

(6)技术参考以下博文:

1-STM32 USB 之从0开始移植笔记https://blog.csdn.net/gzzxbcxm2005/article/details/51347624

2-从头调试STM32 HID http://www.cnblogs.com/sz189981/p/7291121.html

3-移植STM32固件库用于HID双向通信https://blog.csdn.net/a827415225/article/details/51745013

调试中期:

一、移植好修改配置描述符后插入PC端,显示HID-人体学输入设备与USB输入设备,AUDIO设备也增加了一个

图一:

图二:

BUS Hound 软件捕捉到的信息:

至此,产品已经能正确的MIDI通信,至于HID上位机通信,后面将补充代码

二、程序解析

(1)USB数据包的发送与接收;

--USB数据的发送与接收流程分析https://www.cnblogs.com/skl374199080/p/3910066.html

自己重写的MIDI发送代码:

uint32_t USB_SendData(uint8_t *data,uint32_t dataNum)
{
//	#ifndef STM32F10X_MD           //¸Ä±äÈ«¾Ö¶¨Òå
	//½«Êý¾Ýͨ¹ýUSB·¢ËͳöÈ¥-----------by EP2¶Ëµã·¢ËÍTX
	UserToPMABufferCopy(data, ENDP4_TXADDR, dataNum);
	SetEPTxC
  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值