完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
最近在STM32f407上使用两路custom hid(FS和HS)与上位机通信,遇到两个棘手的问题:
1、在主程序中通过FS和HS周期给上位机发送数据,打开测试软件接收HS这一路数据,此时热插拔几次FS这一路线缆,可能会导致HS这一路数据中断。重新插入FS线缆,HS数据恢复。 2、插入FS和HS线缆,stm32f407一直保持上电,上位机多次重启,可能会出现上位机接收不到HS这一路数据。 这两个问题困扰我很久,包括网上搜索资料,请教同事,都没找到答案。 测试发现问题1时,HS一直是USB_BUSY状态无法恢复。我试着通过清发送缓冲区、清断点状态、延长发送时间,都无法解决这个问题。 以下是我的配置和部分代码: (1)、MX配置界面: 中断配置为默认配置。 (2)、程序配置代码: 报告描述符: 宏定义长度: 主程序代码: 异常处理代码: 请大家帮忙看下,是什么原因导致出现这种问题,帮忙解答一下。感激不尽。 |
|
相关推荐
1个回答
|
|
针对您在STM32F407上使用两路Custom HID(FS和HS)与上位机通信时遇到的两个问题,我为您提供以下解决方案:
问题1:热插拔FS线缆可能导致HS数据中断 1. 确保FS和HS线路的电源管理正确设置。在热插拔FS线缆时,可能会影响HS线路的电源供应。检查电源管理配置,确保在热插拔过程中,HS线路的电源供应不会受到影响。 2. 在FS线路热插拔时,可能会影响到HS线路的USB中断。在FS线路热插拔后,尝试重新初始化HS线路的USB中断。 3. 在FS线路热插拔后,检查HS线路的USB状态。如果发现HS线路处于USB_BUSY状态,尝试通过软件重置HS线路的USB设备,以恢复正常通信。 问题2:上位机多次重启可能导致接收不到HS数据 1. 确保STM32F407的USB设备驱动程序在上位机上正确安装。如果驱动程序出现问题,可能会导致上位机无法正确识别和通信。 2. 在上位机重启后,尝试重新初始化HS线路的USB设备。这可以通过发送一个重置信号或重新初始化USB设备来实现。 3. 检查上位机的USB端口。如果上位机的USB端口存在问题,可能会导致通信中断。尝试更换USB端口,或者使用USB集线器来扩展USB端口。 4. 在STM32F407上实现一个心跳机制,定期发送数据包以保持与上位机的连接。这样,在上位机重启后,STM32F407可以主动重新建立连接。 5. 检查STM32F407的USB通信缓冲区。确保缓冲区足够大,以避免在上位机重启时数据丢失。 6. 如果问题仍然存在,可以尝试使用USB协议分析器来诊断问题。这可以帮助您找到导致通信中断的根本原因。 总之,针对这两个问题,您需要从硬件和软件两个方面进行排查和解决。希望这些建议能对您有所帮助。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1780 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1621 浏览 1 评论
1081 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
728 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1679 浏览 2 评论
1938浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
731浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
570浏览 3评论
596浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
556浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-24 02:24 , Processed in 0.923330 second(s), Total 78, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号