USB论坛
直播中

尚文清

7年用户 1556经验值
私信 关注
[问答]

STM32F105实现USB转串口,只有一个串口能用是为什么?

目前用STM32实现usb转4个串口,代码是用STM32CUBE生成的USB转单串口代码,然后在此基础上修改的。
目前代码已经能在PC上正确枚举4个串口。但是只有一个串口能正常通信,其他三个在打开串口的时候会频繁出现feature ep halt这条指令。目前不清楚在什么情况下,host会要求对应的设备执行该指令。

回帖(1)

爱与友人

2024-1-24 17:50:06
在STM32F105实现USB转串口时只有一个串口能用的原因,可能是因为USB转串口功能的代码中存在一些问题。

首先,要确保每个串口的配置和初始化都正确。每个串口应该有独立的缓冲区和指针,防止串口数据相互干扰。

其次,需要确认USB转串口的代码是否正确处理了USB的中断。USB转串口依赖于USB中断来处理数据的接收和发送。如果USB中断处理不正确,可能会导致只有一个串口能正常通信。

另外,对于feature ep halt指令,这是USB设备完成某些操作后,告知主机Endpoint已停止传输数据。可能是因为在打开其他三个串口的时候,出现了某些错误或者不符合USB协议的操作,导致主机要求对应的设备执行feature ep halt指令。可以通过分析USB通信的数据包和加入调试信息,来定位具体的问题所在。

总之,要解决只有一个串口能正常通信的问题,需要仔细检查USB转串口的代码是否正确配置和初始化每个串口,并确保正确处理USB中断。同时,分析feature ep halt指令的出现,并排查导致该指令的原因。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分