打印
[STM32F1]

STM32F105的USB修改Endpoint出现的问题

[复制链接]
1405|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)时,确实需要确保多个地方都被正确地更新以反映这一更改。这不仅仅包括端点本身的编号,还可能包括与端点相关的描述符、回调函数和内存缓冲区等。

使用特权

评论回复
5
classroom| | 2024-9-10 13:38 | 只看该作者
关于你提到的DCD_EP_Tx函数返回错误数据的问题,这很可能是由于端点设置不正确或缓冲区数据未被正确填充所导致的。确保在调用DCD_EP_Tx之前,pbuf指向的数据是你希望发送的数据,并且这些数据是有效的。

使用特权

评论回复
6
公羊子丹| | 2025-2-6 08:25 | 只看该作者
改端点号后确实需要修改接收和传输地址,不改可能导致 USB 数据无法正常传输。

使用特权

评论回复
7
周半梅| | 2025-2-6 08:27 | 只看该作者
STM32F105 的 USB 例程通常有 pma_table 配置,要确保新的端点地址映射正确。

使用特权

评论回复
8
帛灿灿| | 2025-2-6 08:28 | 只看该作者
建议检查 DCD_EP_Open() 是否正确初始化了新的端点号和端点类型。

使用特权

评论回复
9
童雨竹| | 2025-2-6 08:29 | 只看该作者
Endpoint 3 可能与某些 USB 功能冲突,可以排查 ST 官方手册中默认保留的端点。

使用特权

评论回复
10
万图| | 2025-2-6 08:31 | 只看该作者
你试过重新分配 PMA 缓存地址空间吗?多个端点共用地址可能导致传输异常。

使用特权

评论回复
11
Wordsworth| | 2025-2-6 08:32 | 只看该作者
建议用 USB 抓包工具看看具体的握手数据,确认是否有协议级的错误。

使用特权

评论回复
12
Bblythe| | 2025-2-6 08:33 | 只看该作者
105和103在 USB 外设架构上略有区别,最好参考 105 的官方例程重新配置端点。

使用特权

评论回复
13
Pulitzer| | 2025-2-6 08:35 | 只看该作者
除了 DCD_EP_Tx,也要确保 DCD_EP_PrepareRx() 针对新端点初始化正确。

使用特权

评论回复
14
Uriah| | 2025-2-6 08:36 | 只看该作者
如果依然不行,可以尝试将修改后的代码与 CubeMX 自动生成的配置进行对比。

使用特权

评论回复
15
Clyde011| | 2025-2-6 08:37 | 只看该作者
Endpoint 修改是个细致活,务必保证端点号、缓存地址、类型和方向一致配置。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

19

主题

56

帖子

2

粉丝