# CubeMX生成WinUSB
## 功能说明
WinUSB设备windos可以免驱使用,STM32系列的芯片自带了USB2.0的接口和全速PHY,支持12MBps的全速USB模式。
STM32F103C8T6最小系统板
- USART1:串口输入与输出
串口以";"为结束符;
STM32串口发送“1234;====>>”USB上位机收到“1234”
- PA0-PA8:并口输出
- PC13:电平翻转引脚
## 移植说明
WinUSB基于CDC(Virtual Port Com),需要修改HAL库文件,CubeMX生成代码后将HAL库文件替换
1.Middlewares
2.USB_Serial\USB_DEVICE\App\usbd_desc.c
USB_Serial\Core\Src中的winusb_conf.c和USB_Serial\Core\inc中的winusb_conf.h只适用于本工程代码
## 修改说明
```
winusb_conf内容为设备枚举为WinUSB的三个关键信息:
1)OS字符串描述符;
2)扩展兼容ID OS功能描述符;
3)扩展属性OS功能描述符;
```
```
usbd_def.h
USBD_DescriptorsTypeDef结构体添加函数指针
uint8_t *(*GetWinUSBOSFeatureDescriptor)(uint16_t *length);
uint8_t *(*GetWinUSBOSPropertyDescriptor)(uint16_t *length);
USBD_ClassTypeDef结构体添加函数指针
uint8_t *(*GetWinUSBOSDescriptor)(uint16_t *length);
```
```
usbd_desc.c
USBD_DescriptorsTypeDef FS_Desc
添加 USBD_WinUSBOSFeatureDescriptor, USBD_WinUSBOSPropertyDescriptor
```
```
usb_cdc.c
USBD_ClassTypeDef USBD_CDC
添加USBD_WinUSBOSStrDescriptor
```
```
usbd_ctrlreq.c
1.USBD_GetDescriptor://有USB设备插入,系统会向设备索取设备描述符检索0xEE位置的OS设备字串描述符
case 0xEE: // OS String
if (pdev->pClass->GetWinUSBOSDescriptor != NULL)
{
pbuf = pdev->pClass->GetWinUSBOSDescriptor(&len);
}
else
{
USBD_CtlError(pdev, req);
err++;
}
break;
2.USBD_StdDevReq:获取兼容ID特征描述符,回复兼容信息为WinUSB设备
if(req->bRequest == USB_REQ_MS_VENDOR_CODE)
{
USBD_WinUSBGetDescriptor( pdev, req );
return ret;
}
3.USBD_StdItfReq:请求属性描述符,对于WinUSB设备需要注册设备接口GUID
if ( req->bmRequest == 0xC1 ) {
USBD_WinUSBGetDescriptor( pdev, req );
return USBD_OK;
}
bmRequest;表示请求类型和目标设备方向
bRequest;表示请求代码
wIndex:表示请求的索引
```
![image-20240305111032254](C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20240305111032254.png)
![image-20240305111048789](C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20240305111048789.png)
USB协议概括
[STM32 USB培训 USB2.0 协议-上集_哔哩哔哩_bilibili](https://www.bilibili.com/video/BV1gt4y1D7zU/?spm_id_from=333.880.my_history.page.click&vd_source=82007ec8ae53a1b6c34f242bc372a316)
[STM32 USB培训 USB2.0 协议-下集_哔哩哔哩_bilibili](https://www.bilibili.com/video/BV1up4y1q7ww/?spm_id_from=333.880.my_history.page.click&vd_source=82007ec8ae53a1b6c34f242bc372a316)
[STM32-USB学习系列(一) :USB与USB库的介绍_stm32 usb-CSDN博客](https://blog.csdn.net/laifengyuan1/article/details/107954222)
[STM32 WinUSB(WCID)免驱高速通信 20M/s(附详细测试)-CSDN博客](https://blog.csdn.net/bingwueyi/article/details/121622001)
[NUCLEO-STM32H7A3测评之WINUSB移植 - STM32/STM8单片机论坛 - ST MCU意法半导体官方技术支持论坛 - 21ic电子技术开发论坛](https://bbs.21ic.com/icview-3140044-1-1.html)
STM32 Winusb转串口与并口
需积分: 0 175 浏览量
更新于2024-03-05
收藏 9.94MB ZIP 举报
WinUSB设备windos可以免驱使用,STM32系列的芯片自带了USB2.0的接口和全速PHY,支持12MBps的全速USB模式。
STM32F103C8T6最小系统板
- USART1:串口输入与输出
串口以";"为结束符;
STM32串口发送“1234;”====>>USB收到“1234”
- PA0-PA8:并口输出
- PC13:电平翻转引脚
一如既往_
- 粉丝: 299
- 资源: 1
最新资源
- 毕设和企业适用springboot社交应用平台类及金融数据分析平台源码+论文+视频.zip
- 毕设和企业适用springboot社交应用平台类及交通信息平台源码+论文+视频.zip
- 毕设和企业适用springboot人力资源管理类及用户数据分析平台源码+论文+视频.zip
- 毕设和企业适用springboot人力资源管理类及用户体验优化平台源码+论文+视频.zip
- 毕设和企业适用springboot人力资源管理类及用户行为分析平台源码+论文+视频.zip
- 毕设和企业适用springboot人力资源管理类及运动管理平台源码+论文+视频.zip
- 毕设和企业适用springboot人力资源管理类及智能化系统源码+论文+视频.zip
- 毕设和企业适用springboot社交互动平台类及社交媒体平台源码+论文+视频.zip
- 毕设和企业适用springboot社交互动平台类及人工智能客服平台源码+论文+视频.zip
- 毕设和企业适用springboot社交互动平台类及社交游戏平台源码+论文+视频.zip
- 毕设和企业适用springboot社交应用平台类及跨平台销售系统源码+论文+视频.zip
- 毕设和企业适用springboot社交应用平台类及民生服务平台源码+论文+视频.zip
- 毕设和企业适用springboot社交互动平台类及生活服务平台源码+论文+视频.zip
- 毕设和企业适用springboot社交互动平台类及食品配送管理平台源码+论文+视频.zip
- 毕设和企业适用springboot社交互动平台类及社区服务平台源码+论文+视频.zip
- 毕设和企业适用springboot社交应用平台类及无人驾驶系统源码+论文+视频.zip