硬汉嵌入式论坛

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

H7的USB(USB3300方案)求助

[复制链接]

8

主题

50

回帖

79

积分

初级会员

积分
79
发表于 2023-8-8 10:15:15 | 显示全部楼层 |阅读模式
最近在调试H7接SD卡,通过USB3300实现U盘功能,调试了很久,始终搞不定。


参考的是ST的官方例程:https://github.com/STMicroelectronics/STM32CubeH7里的STM32H743I-EVAL例程里的USB_Device

然后这段代码也不报错:

  if (USBD_Init(&hUsbDeviceHS, &MSC_Desc, 0) != USBD_OK)
  {
    Error_Handler(__FILE__, __LINE__);
  }
  if (USBD_RegisterClass(&hUsbDeviceHS, USBD_MSC_CLASS) != USBD_OK)
  {
    Error_Handler(__FILE__, __LINE__);
  }
  if (USBD_MSC_RegisterStorage(&hUsbDeviceHS, &USBD_DISK_fops) != USBD_OK)
  {
    Error_Handler(__FILE__, __LINE__);
  }
  if (USBD_Start(&hUsbDeviceHS) != USBD_OK)
  {
    Error_Handler(__FILE__, __LINE__);
  }

但是也不工作。。。

我的理解里,USBD_RegisterClass、USBD_MSC_RegisterStorage这两个函数应该会调用uint8_t USBD_MSC_Init(USBD_HandleTypeDef *pdev, uint8_t cfgidx)和int8_t STORAGE_Init(uint8_t lun)函数吧,但是打断点发现,压根就没有调用,是哪里没配置对吗?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106771
QQ
发表于 2023-8-8 11:55:48 | 显示全部楼层
这个是做了个模拟U盘功能吧,这个功能我们也有制作,用的USB3300,你下载这个帖子的APP V1.X工程,里面就有个模拟U盘。
https://www.armbbs.cn/forum.php?mod=viewthread&tid=95468

回复

使用道具 举报

8

主题

50

回帖

79

积分

初级会员

积分
79
 楼主| 发表于 2023-8-8 12:01:34 来自手机 | 显示全部楼层
eric2013 发表于 2023-8-8 11:55
这个是做了个模拟U盘功能吧,这个功能我们也有制作,用的USB3300,你下载这个帖子的APP V1.X工程,里面就有 ...

硬汉兄,我也有参考过这个例程,结果也是一样的,就是不知道为什么这些初始化函数都没有调用,然后电脑上显示描述符请求失败
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106771
QQ
发表于 2023-8-8 16:45:52 | 显示全部楼层
wling597074509 发表于 2023-8-8 12:01
硬汉兄,我也有参考过这个例程,结果也是一样的,就是不知道为什么这些初始化函数都没有调用,然后电脑上 ...

模拟U盘主要注意两个地方
1、USB时钟一定要设置对,48MHz
2、滴答定时器中断抢占优先级高于USB中断抢占优先级。
回复

使用道具 举报

8

主题

50

回帖

79

积分

初级会员

积分
79
 楼主| 发表于 2023-8-8 17:22:48 | 显示全部楼层
eric2013 发表于 2023-8-8 16:45
模拟U盘主要注意两个地方
1、USB时钟一定要设置对,48MHz
2、滴答定时器中断抢占优先级高于USB中断抢占 ...

硬汉兄一句话,胜过自己调两天,修改了优先级后确实能调用函数了,设备管理器里能够看到“USB大容量存储设备”了,只是“我的电脑”里没显示盘符....
回复

使用道具 举报

8

主题

50

回帖

79

积分

初级会员

积分
79
 楼主| 发表于 2023-8-8 17:28:44 | 显示全部楼层
eric2013 发表于 2023-8-8 16:45
模拟U盘主要注意两个地方
1、USB时钟一定要设置对,48MHz
2、滴答定时器中断抢占优先级高于USB中断抢占 ...

可以了,终于显示了,看来就是优先级的问题,感谢感谢
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-6 01:07 , Processed in 0.182472 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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