汇集网友智慧,解决技术难题
原因 ma STM32F105 rc USB U盘
赞0
评论
2024-06-19
2024-06-18
gyh974 发表于 2024-6-18 15:42 不都是CUBE自动生成的?基本上不用改的
玄德 发表于 2024-6-18 11:05 USB 机制,主机会定时查询子机。 想想看,U盘拔出来以后,电脑很快就知道了,为什么。 FS 模式每毫秒一次 ...
点击图片添加到编辑器内容中
点击文件名将附件添加到文章中
提交
tyw
312个答案
天意无罪
277个答案
jjjyufan
174个答案
xch
169个答案
coody
161个答案
chunyang
135个答案
LcwSwust
110个答案
呐咯密密
101个答案
赞0
评论
2024-06-19
赞0
评论
2024-06-18
赞0
评论
2024-06-18
赞0
评论
2024-06-18
赞0
评论
2024-06-18
赞0
搞到最后是他没有使能
评论
2024-06-18
赞0
评论
2024-06-18
赞0
USB Device Connected
USB Device Reset Completed
PID: 1212h
VID: 14cdh
Address (#1) assigned.
Manufacturer : Generic
Product : Mass Storage Device
Serial Number : 121220160204
Enumeration done.
This device has only 1 configuration.
Default configuration set.
Switching to Interface (#0)
Class : 8h
SubClass : 6h
Protocol : 50h
MSC class started.
Number of supported LUN: 1
LUN #0:
Inquiry Vendor : Mass
Inquiry Product : Storage Device
Inquiry Version : 1.00
MSC Device ready
MSC Device capacity : 3046637056 Bytes
Block number : 31116287
Block Size : 512
评论
2024-06-18
赞0
终于搞定,谢谢大侠的正解,这个中断是必要,而且正常的。
解决过程如下,供后来者参考:
我的问题是:USBH_UserProcess函数中,插入U盘一直到不了case HOST_USER_CLASS_ACTIVE:
8M晶振换到20M的也不行,DN/DP加上接下拉也不行,开不开freeRTOS都不行,几乎cube相关配置都改过了,一如既往的不行。
于是cube打开调试模式,等级为3:All messages and internal debug messages are shown,插上U盘后,惊奇的发现串口打印USB Device Connected,于是在工程里搜索到打印USB Device Connected的地方(usbh_core.c),打印这句话后,phost->gState = HOST_DEV_WAIT_FOR_ATTACHMENT; 再定位到这句话下面几行处:case HOST_DEV_WAIT_FOR_ATTACHMENT: /* Wait for Port Enabled */
发现需要phost->device.PortEnabled==1,才能正确往下走,在工程里搜索phost->device.PortEnabled,发现它在其它地方都是被=0的,而在void USBH_LL_PortEnabled(USBH_HandleTypeDef *phost)函数里被置1,在此函数里打不了断点,说明没被使用(调用)过。
试图在void MX_USB_HOST_Init(void)函数的最后/* USER CODE BEGIN USB_HOST_Init_PostTreatment*/与/* USER CODE END USB_HOST_Init_PostTreatment */之间,加上USBH_LL_PortEnabled(&hUsbHostFS);
编译通过,下载仿真,插上U盘,终于可以运行到USBH_UserProcess函数里的case HOST_USER_CLASS_ACTIVE:处。
这样就可以正常操作U盘了。
评论
2024-06-18
您需要登录后才可以回复 登录 | 注册