H7的USB(USB3300方案)求助
最近在调试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)函数吧,但是打断点发现,压根就没有调用,是哪里没配置对吗?
这个是做了个模拟U盘功能吧,这个功能我们也有制作,用的USB3300,你下载这个帖子的APP V1.X工程,里面就有个模拟U盘。
https://www.armbbs.cn/forum.php?mod=viewthread&tid=95468
eric2013 发表于 2023-8-8 11:55
这个是做了个模拟U盘功能吧,这个功能我们也有制作,用的USB3300,你下载这个帖子的APP V1.X工程,里面就有 ...
硬汉兄,我也有参考过这个例程,结果也是一样的,就是不知道为什么这些初始化函数都没有调用,然后电脑上显示描述符请求失败 wling597074509 发表于 2023-8-8 12:01
硬汉兄,我也有参考过这个例程,结果也是一样的,就是不知道为什么这些初始化函数都没有调用,然后电脑上 ...
模拟U盘主要注意两个地方
1、USB时钟一定要设置对,48MHz
2、滴答定时器中断抢占优先级高于USB中断抢占优先级。 eric2013 发表于 2023-8-8 16:45
模拟U盘主要注意两个地方
1、USB时钟一定要设置对,48MHz
2、滴答定时器中断抢占优先级高于USB中断抢占 ...
硬汉兄一句话,胜过自己调两天,修改了优先级后确实能调用函数了,设备管理器里能够看到“USB大容量存储设备”了,只是“我的电脑”里没显示盘符.... eric2013 发表于 2023-8-8 16:45
模拟U盘主要注意两个地方
1、USB时钟一定要设置对,48MHz
2、滴答定时器中断抢占优先级高于USB中断抢占 ...
可以了,终于显示了,看来就是优先级的问题,感谢感谢:handshake
页:
[1]