硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2413|回复: 10
收起左侧

新人通过USBX学习USB的一些疑问

[复制链接]
回帖奖励 24 个金币 回复本帖可获得 8 个金币奖励! 每人限 1 次

8

主题

19

回帖

43

积分

新手上路

积分
43
发表于 2024-7-12 15:37:22 | 显示全部楼层 |阅读模式
本想是想通过USBX学习一下USB协议的,但是看了几天还是一头雾水看了Eric大佬对V5移植的文档,基础问题扫盲,USBX的中文文档等,对于描述符,事务,包什么的也有所了解了,但还是写程序下不去手。F4软件包中CDC_ACM的例程也看了,但是F429的例程烧到407的板子上电脑枚举都枚举不到,有合适一点的USB学习路线么?或者例程多易上手的库之类的。
USBX应该是个中间件,那他和底层对接的文件在哪里呢?我看V5的模板和F4 CDC_ACM的例子,有些ux开头的文件是ST那边写的,那这类文件是需要上哪里去找呢?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117512
QQ
发表于 2024-7-13 09:21:55 | 显示全部楼层

回帖奖励 +8 个金币

以STM32F4为例,ST有提供对应的AZURE F4软件包,里面有很多USBX的案例,底层驱动接口,ST都做好了,大家只需添加就可以使用。

推荐先看AZURE F4软件包熟悉下:https://github.com/STMicroelectronics/x-cube-azrtos-f4

然后使用STM32CubeMX可以方便的生成USBX工程。
回复

使用道具 举报

8

主题

19

回帖

43

积分

新手上路

积分
43
 楼主| 发表于 2024-7-15 18:07:31 | 显示全部楼层
eric2013 发表于 2024-7-13 09:21
以STM32F4为例,ST有提供对应的AZURE F4软件包,里面有很多USBX的案例,底层驱动接口,ST都做好了,大家只 ...

汉哥,我仿照着st的例程弄了一个,和ux有关的文件都是直接用的他的,但是usb设备还是识别不出来。例程是469的我是407的。我直接用USB DEVIDE配置的VCP是可以正常识别的,那我的电脑应该也不是缺驱动的,是还需要做哪些改动么?
回复

使用道具 举报

8

主题

19

回帖

43

积分

新手上路

积分
43
 楼主| 发表于 2024-7-15 19:29:44 | 显示全部楼层
我仿着ST的例程对F407写了一个CDC_ACM的程序,程序中设置的VID与PID, 屏幕截图 2024-07-15 191558.png 传到电脑上识别出来的就不对了, 屏幕截图 2024-07-15 191710.png 调试对着程序看了一下,VID和PID没有什么问题, 屏幕截图 2024-07-15 192440.png 屏幕截图 2024-07-15 192523.png 配置的48M时钟,这中间还会有什么导致这个问题呢?对于USB的初始化都是CubeMX直接生成的,还会有哪里出现问题呢?求助大佬
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117512
QQ
发表于 2024-7-16 09:07:28 | 显示全部楼层
tyty697 发表于 2024-7-15 19:29
我仿着ST的例程对F407写了一个CDC_ACM的程序,程序中设置的VID与PID,传到电脑上识别出来的就不对了,调试 ...

不行就直接用这个吧,这个是F407的

应网友需求,制作基于STM32-V5开发板的虚拟串口例子供大家下载参考
https://forum.anfulai.cn/forum.p ... 7712&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

8

主题

19

回帖

43

积分

新手上路

积分
43
 楼主| 发表于 2024-7-16 23:06:04 | 显示全部楼层
这个我用CubeMX使用USB Device直接生成了一个VPC是可以正常使用的,就是USBX的不通,我用逻辑分析仪抓了一下,感觉像是哪里没有配置通一样。 屏幕截图 2024-07-16 221138.png
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117512
QQ
发表于 2024-7-17 19:20:06 | 显示全部楼层
tyty697 发表于 2024-7-16 23:06
这个我用CubeMX使用USB Device直接生成了一个VPC是可以正常使用的,就是USBX的不通,我用逻辑分析仪抓了一 ...

对比下他这个

STM32H5 threadx usbx实现虚拟串口
https://forum.anfulai.cn/forum.p ... 3996&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

11

主题

43

回帖

76

积分

初级会员

leduo

积分
76
发表于 2024-10-9 18:42:59 | 显示全部楼层

回帖奖励 +8 个金币

  我当时调试的时候有个电源部分要在初始化的时候开启一下

SystemClock_Config();
        HAL_PWREx_EnableVddUSB();
        MX_ICACHE_Init();
  MX_DCACHE1_Init();
        bsp_dwt_init();
        bsp_led_init();
        bsp_uart_init();

HAL_PWREx_EnableVddUSB(); 这一行是我在官方论坛发现的,当然我的主控是H5,不过你可以试试
回复

使用道具 举报

11

主题

43

回帖

76

积分

初级会员

leduo

积分
76
发表于 2024-10-9 18:44:32 | 显示全部楼层
楼主如果需要的话,我可以把我的工程发给你
回复

使用道具 举报

8

主题

19

回帖

43

积分

新手上路

积分
43
 楼主| 发表于 2024-10-17 22:06:52 | 显示全部楼层
Aesthetics 发表于 2024-10-9 18:44
楼主如果需要的话,我可以把我的工程发给你

这个函数的定义是在哪个文件里呀,我全局搜索了我的项目,没有对这个函数的定义欸
回复

使用道具 举报

1

主题

9

回帖

12

积分

新手上路

积分
12
发表于 2024-11-18 17:32:34 | 显示全部楼层
tyty697 发表于 2024-10-17 22:06
这个函数的定义是在哪个文件里呀,我全局搜索了我的项目,没有对这个函数的定义欸

HAL_PWREx_EnableVddUSB();  
这个函数,如何使用CubeMX自动生成代码,应该在void HAL_PCD_MspInit(PCD_HandleTypeDef* hpcd)下面,
    // Enable VDDUSB
    if(__HAL_RCC_PWR_IS_CLK_DISABLED())
    {
      __HAL_RCC_PWR_CLK_ENABLE();
      HAL_PWREx_EnableVddUSB();
      __HAL_RCC_PWR_CLK_DISABLE();
    }
    else
    {
      HAL_PWREx_EnableVddUSB();
    }
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-12 07:07 , Processed in 0.046439 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表