[STM32F1] STM32F105的USB修改Endpoint出现的问题

[复制链接]
1718|14
 楼主| ccd007 发表于 2017-8-5 12:07 | 显示全部楼层 |阅读模式
如题:我的STM32F105中U盘例程USB MSC 使用的Endpoint为  END1 ((uint8_t)0x01)  ((uint8_t)0x81),我想把端点改为END3 ((uint8_t)0x03)  ((uint8_t)0x83)。结果我修改完端点后U盘盘符就看不到了。请问还需要修改什么地方?以前103的例程,修改完端点还要修改端点接收和传输地址,105的例程我没发现在什么地方修改,是这个问题导致的吗?  另外,另外我使用 DCD_EP_Tx (pdev, END1 , pbuf, len);回传数据时,发现回传的数据是错的,不是我需要回传的数据,是不是也是因为端点传输地址没有设置好?
 楼主| ccd007 发表于 2017-8-6 09:36 | 显示全部楼层
没人做过105的这种修改吗,帖子都沉下去了,还不见人回复。
ninkwo 发表于 2024-9-5 14:49 | 显示全部楼层
七年过去了,我也遇到了这个问题,楼主解决了吗
classroom 发表于 2024-9-10 13:38 | 显示全部楼层
在STM32F105系列微控制器中,当你使用USB MSC(Mass Storage Class)例程并尝试更改端点(Endpoint)时,确实需要确保多个地方都被正确地更新以反映这一更改。这不仅仅包括端点本身的编号,还可能包括与端点相关的描述符、回调函数和内存缓冲区等。
classroom 发表于 2024-9-10 13:38 | 显示全部楼层
关于你提到的DCD_EP_Tx函数返回错误数据的问题,这很可能是由于端点设置不正确或缓冲区数据未被正确填充所导致的。确保在调用DCD_EP_Tx之前,pbuf指向的数据是你希望发送的数据,并且这些数据是有效的。
公羊子丹 发表于 2025-2-6 08:25 | 显示全部楼层
改端点号后确实需要修改接收和传输地址,不改可能导致 USB 数据无法正常传输。
周半梅 发表于 2025-2-6 08:27 | 显示全部楼层
STM32F105 的 USB 例程通常有 pma_table 配置,要确保新的端点地址映射正确。
帛灿灿 发表于 2025-2-6 08:28 | 显示全部楼层
建议检查 DCD_EP_Open() 是否正确初始化了新的端点号和端点类型。
童雨竹 发表于 2025-2-6 08:29 | 显示全部楼层
Endpoint 3 可能与某些 USB 功能冲突,可以排查 ST 官方手册中默认保留的端点。
万图 发表于 2025-2-6 08:31 | 显示全部楼层
你试过重新分配 PMA 缓存地址空间吗?多个端点共用地址可能导致传输异常。
Wordsworth 发表于 2025-2-6 08:32 | 显示全部楼层
建议用 USB 抓包工具看看具体的握手数据,确认是否有协议级的错误。
Bblythe 发表于 2025-2-6 08:33 | 显示全部楼层
105和103在 USB 外设架构上略有区别,最好参考 105 的官方例程重新配置端点。
Pulitzer 发表于 2025-2-6 08:35 | 显示全部楼层
除了 DCD_EP_Tx,也要确保 DCD_EP_PrepareRx() 针对新端点初始化正确。
Uriah 发表于 2025-2-6 08:36 | 显示全部楼层
如果依然不行,可以尝试将修改后的代码与 CubeMX 自动生成的配置进行对比。
Clyde011 发表于 2025-2-6 08:37 | 显示全部楼层
Endpoint 修改是个细致活,务必保证端点号、缓存地址、类型和方向一致配置。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

19

主题

56

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部