硬汉嵌入式论坛

 找回密码
 立即注册
查看: 645|回复: 1
收起左侧

使用 CDC_ACM 的 USB 串口枚举,必须使用端口 0x81 和 0x01 吗?

[复制链接]

22

主题

182

回帖

248

积分

高级会员

积分
248
QQ
发表于 2025-1-9 20:43:50 | 显示全部楼层 |阅读模式
是 windows ,复合设备枚举成功了,发现 CDC_ACM 的 IN/OUT 端口配置成 0x83 和 0x3 就不能正常通信了。


表现为芯片给 windows 发信,0x83 端口怎么都发不出去,卡死在 USB_OTG_GINTSTS_IEPINT  这个 IN 端口发信中断里,不断触发但是就是发不出去。

什么都不更改。只要把端口配成 0x81 和 0x01 就好了。windows 的原生串口驱动有必须用端口 1 的说法吗?
回复

使用道具 举报

22

主题

182

回帖

248

积分

高级会员

积分
248
QQ
 楼主| 发表于 2025-1-9 20:52:40 | 显示全部楼层
没事了。破案了。

[C] 纯文本查看 复制代码
    /* Set Rx FIFO */
    HAL_PCDEx_SetRxFiFo(&hpcd_USB_OTG_FS, 0x200);
    /* Set Tx FIFO 0 */
    HAL_PCDEx_SetTxFiFo(&hpcd_USB_OTG_FS, 0, 0x80);
    /* Set Tx FIFO 1 */
    HAL_PCDEx_SetTxFiFo(&hpcd_USB_OTG_FS, 1, 0x100);
    /* Set Tx FIFO 3 */
    HAL_PCDEx_SetTxFiFo(&hpcd_USB_OTG_FS, 3, 0x100);


是这里的最后一句,之前没开端口 3 的发送 FIFO。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-4-25 20:48 , Processed in 0.221089 second(s), 23 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表