完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
STM32F4为什么不能同时接两个usb device,我的板子上有nandflash和sd卡,我想同时使用两个做u盘,在file_config如果nand和memorry card同时选择,编译会出错 如下#elif (__DEF gt; 1) #error multiple default drives enabled #endif,即使我修改编译选项 lif (__DEF gt;2) ,可以通过,但这时计算机已经无法找到u盘了,难道不能同时用两个u盘吗,我用的是RL的库。[/td]
以下内容为评论 [td]1、如果要使用2个U盘,需要使用USB的复合设备的功能,在枚举的时候枚举出两个设备,而不能直接通过修改宏来实现, 具体就看看usb枚举的代码吧。 2、你还没有理解u盘为什么能工作, 在电脑上看到两个U盘通过0号端点来枚举 读写U盘通过1个输入 一个输出端点来实现数据读写; 如果有多个U盘,在0好端点要做两套描述符; 读写端点要增加2个(1个读端点,一个写端点) 3、建议多看看usb协议 |
|
相关推荐
1个回答
|
|
STM32F4不能同时接两个USB设备的原因主要有以下几点:
1. **硬件限制**:STM32F4系列微控制器通常只有一个USB控制器,这意味着它只能同时支持一个USB设备。如果你想要同时使用两个USB设备,你需要使用具有多个USB控制器的微控制器,或者使用外部USB集线器。 2. **固件限制**:你提到的错误信息 `#elif (__DEF gt 1) #error multiple default drives enabled #endif` 表示你的固件配置只允许一个默认驱动。这意味着你的固件设计为只支持一个USB设备。要支持多个USB设备,你需要修改固件以支持复合设备(Composite Device)。 3. **USB复合设备**:要实现同时使用两个USB设备,你需要使用USB复合设备的功能。这意味着你需要在枚举过程中枚举出两个设备,而不是通过修改宏来实现。这通常涉及到修改固件中的USB描述符和配置。 4. **库的限制**:你提到使用的是RL的库,这个库可能没有提供支持多个USB设备的功能。你可能需要寻找其他支持复合设备的库,或者自己修改现有库以支持多个设备。 5. **操作系统兼容性**:即使硬件和固件都支持多个USB设备,操作系统也需要能够识别和处理复合设备。在某些情况下,操作系统可能无法正确识别或处理复合设备,导致无法正常使用。 综上所述,要实现STM32F4同时使用两个USB设备,你需要解决硬件限制、固件限制、库的限制以及操作系统兼容性问题。这可能涉及到更换硬件、修改固件、寻找或修改库以及确保操作系统兼容性。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1979 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1761 浏览 1 评论
1233 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
819 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1776 浏览 2 评论
2015浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
893浏览 4评论
stm32f4下spi+dma读取数据不对是什么原因导致的?
320浏览 3评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
673浏览 3评论
662浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-2-24 15:19 , Processed in 1.115352 second(s), Total 79, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191