# 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转串口与并口
共215个文件
h:61个
d:33个
c:33个
需积分: 0 2 下载量 182 浏览量
2024-03-05
14:03:19
上传
评论
收藏 9.94MB ZIP 举报
温馨提示
WinUSB设备windos可以免驱使用,STM32系列的芯片自带了USB2.0的接口和全速PHY,支持12MBps的全速USB模式。 STM32F103C8T6最小系统板 - USART1:串口输入与输出 串口以";"为结束符; STM32串口发送“1234;”====>>USB收到“1234” - PA0-PA8:并口输出 - PC13:电平翻转引脚
资源推荐
资源详情
资源评论
收起资源包目录
STM32 Winusb转串口与并口 (215个子文件)
USB_Serial.uvguix.Administrator 90KB
USB_Serial.axf 644KB
USB_Serial_sct.Bak 479B
stm32f1xx_hal_tim.c 238KB
stm32f1xx_hal_uart.c 132KB
stm32f1xx_hal_tim_ex.c 78KB
stm32f1xx_ll_usb.c 77KB
stm32f1xx_hal_pcd.c 71KB
stm32f1xx_hal_rcc.c 48KB
stm32f1xx_hal_flash_ex.c 35KB
stm32f1xx_hal_rcc_ex.c 29KB
stm32f1xx_hal_flash.c 28KB
stm32f1xx_hal_dma.c 27KB
usbd_cdc.c 22KB
usbd_ctlreq.c 22KB
stm32f1xx_hal_gpio.c 20KB
stm32f1xx_hal_pwr.c 20KB
stm32f1xx_hal.c 20KB
usbd_conf.c 19KB
stm32f1xx_hal_cortex.c 18KB
stm32f1xx_hal_exti.c 15KB
system_stm32f1xx.c 14KB
usbd_core.c 13KB
usbd_desc.c 11KB
usbd_desc.c 11KB
usbd_cdc_if.c 8KB
stm32f1xx_hal_pcd_ex.c 7KB
winusb_conf.c 6KB
main.c 6KB
stm32f1xx_it.c 6KB
usbd_ioreq.c 5KB
stm32f1xx_hal_gpio_ex.c 4KB
usart.c 3KB
gpio.c 3KB
usb_device.c 2KB
stm32f1xx_hal_msp.c 2KB
usbd_cdc.crf 557KB
usbd_conf.crf 556KB
usbd_ctlreq.crf 555KB
stm32f1xx_hal_uart.crf 554KB
stm32f1xx_ll_usb.crf 553KB
usbd_desc.crf 553KB
usbd_cdc_if.crf 553KB
usb_device.crf 552KB
winusb_conf.crf 552KB
usbd_core.crf 552KB
main.crf 552KB
usbd_ioreq.crf 550KB
stm32f1xx_hal_pcd.crf 546KB
stm32f1xx_hal_rcc.crf 539KB
stm32f1xx_hal_dma.crf 534KB
stm32f1xx_hal_flash_ex.crf 533KB
stm32f1xx_hal_flash.crf 531KB
stm32f1xx_hal_gpio.crf 530KB
stm32f1xx_hal_exti.crf 530KB
stm32f1xx_hal_pwr.crf 529KB
stm32f1xx_hal_rcc_ex.crf 529KB
stm32f1xx_hal.crf 528KB
gpio.crf 528KB
usart.crf 528KB
stm32f1xx_hal_cortex.crf 528KB
stm32f1xx_it.crf 527KB
stm32f1xx_hal_pcd_ex.crf 527KB
stm32f1xx_hal_msp.crf 527KB
system_stm32f1xx.crf 527KB
stm32f1xx_hal_gpio_ex.crf 527KB
stm32f1xx_hal_tim_ex.crf 526KB
stm32f1xx_hal_tim.crf 526KB
usb_device.d 3KB
usbd_cdc_if.d 3KB
usbd_ctlreq.d 3KB
usbd_cdc.d 3KB
winusb_conf.d 3KB
usbd_desc.d 3KB
usbd_conf.d 3KB
usbd_ioreq.d 3KB
usbd_core.d 3KB
main.d 3KB
stm32f1xx_hal_flash_ex.d 3KB
stm32f1xx_hal_gpio_ex.d 3KB
stm32f1xx_hal_cortex.d 3KB
stm32f1xx_hal_rcc_ex.d 3KB
stm32f1xx_hal_pcd_ex.d 3KB
stm32f1xx_hal_tim_ex.d 3KB
stm32f1xx_hal_flash.d 3KB
stm32f1xx_hal_exti.d 3KB
stm32f1xx_hal_gpio.d 3KB
stm32f1xx_hal_uart.d 3KB
stm32f1xx_hal_msp.d 3KB
stm32f1xx_hal_tim.d 3KB
stm32f1xx_hal_pwr.d 3KB
stm32f1xx_hal_rcc.d 3KB
stm32f1xx_hal_pcd.d 3KB
stm32f1xx_hal_dma.d 3KB
stm32f1xx_ll_usb.d 3KB
system_stm32f1xx.d 2KB
stm32f1xx_it.d 2KB
stm32f1xx_hal.d 2KB
usart.d 2KB
gpio.d 2KB
共 215 条
- 1
- 2
- 3
资源评论
一如既往_
- 粉丝: 295
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 技术资料分享TF卡资料很好的技术资料.zip
- 技术资料分享TF介绍很好的技术资料.zip
- 10、安徽省大学生学科和技能竞赛A、B类项目列表(2019年版).xlsx
- 9、教育主管部门公布学科竞赛(2015版)-方喻飞
- C语言-leetcode题解之83-remove-duplicates-from-sorted-list.c
- C语言-leetcode题解之79-word-search.c
- C语言-leetcode题解之78-subsets.c
- C语言-leetcode题解之75-sort-colors.c
- C语言-leetcode题解之74-search-a-2d-matrix.c
- C语言-leetcode题解之73-set-matrix-zeroes.c
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功