本帖最后由 caxfan 于 2019-3-17 20:57 编辑 STM32F407VE板子使用mbed无OS开发SDIOBlockDevice时,参考例程编译成功,但是SD盘没有出现: 1.出现 USB大容量存储设备 2.其它设备->#的设备 使用USBlyzer监测发现 [url=]代码[/url] [url=][/url] [url=][/url] [url=][/url] BulkIn端点应答明显错误 查看程序USBMSD.cpp bool USBMSD::inquiryRequest (void) { uint8_t inquiry[] = { 0x00, 0x80, 0x00, 0x01, 36 - 4, 0x80, 0x00, 0x00, 'M', 'B', 'E', 'D', '.', 'O', 'R', 'G', 'M', 'B', 'E', 'D', ' ', 'U', 'S', 'B', ' ', 'D', 'I', 'S', 'K', ' ', ' ', ' ', '1', '.', '0', ' ', }; if (!write(inquiry, sizeof(inquiry))) { return false; } return true; } bool USBMSD::write (uint8_t * buf, uint16_t size) { if (size >= cbw.DataLength) { size = cbw.DataLength; } stage = SEND_CSW; if (!writeNB(EPBULK_IN, buf, size, MAX_PACKET_SIZE_EPBULK)) { return false; } ...} writeNB->endpointWrite->HAL_PCD_EP_Transmit->USB_EPStartXfer 而stm32f4xx_||_usb.c中USB_EPStartXfer函数 if (ep->type == EP_TYPE_ISOC) { USB_WritePacket(USBx, ep->xfer_buff, ep->num, ep->xfer_len, dma); } 即端点类型是 EP_TYPE_ISOC才发送ep->xfer_buff即上面inquiry字符串 而write函数里是EPBULK_IN发送,该端点类型是EP_TYPE_BULK型,也就是说inquiry字符串不能被发送. 这个问题如何解决,请大侠帮忙,谢谢! |
STM32F407 USB的IN端点只能是0x81么?
求技术解答,STM32H723的USB模拟U盘应用过程遇到了问题。
请问一下,我的nucleo板子连接usb线,找不到target,一直无法下载程序怎么回事呢?
请问一下,stm32WB有可以驱动声卡的驱动程序吗(声卡是PCM2704)?
STM32F407 USB怎么测试接口的极限速度
我的电脑识别不到STM32的ST-LINK驱动(特指针对芯片stm32wle5ccu6)
请问各位大佬,STM32F4怎么利用Typec口OTG,硬件电路怎么实现
stm32 usb复合设备支持键盘鼠标和hid串口通信可以实现吗
stm32f407 开启两路(FS和HS) Custom HID,与上位机通信偶尔中断
stm32f746g-disco开发板的串口通讯连接方式
评分
查看全部评分
是源程序有bug
uint8_t inquiry[]必须声明为static变量或全局变量
谢谢反馈!