完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
请教一下,我在批量IN数据的过程中,在IN数据至上位机正常的情况下(CWB命令还没执行完),突然出现USB1_INT_FG=0x00的情况,然后就是USB1_INT_FG=0x01和0x05要求复位,导致数据无法正常上传,这是什么原因造成的呢?
主要代码如下: USB1_INT_FG = R8_USB1_INT_FG; USB1_INT_ST = R8_USB1_INT_ST; printf("R8_USB1_INT_FG:%02x;R8_USB1_INT_ST:%02x ",USB1_INT_FG,USB1_INT_ST); if ((USB1_INT_FG & UIF_TRANSFER) && (USB1_INT_ST & (bUIS_TOG_OK|UIS_TOKEN_IN|2))) { USB1Dev_EDP2_IN_Deal(); if(BOTStats == 0){ //printf("判断BOTStats设置为0。 "); break; } R8_USB1_INT_FG = 0xFF; } printf("err? "); } |
|
相关推荐
1个回答
|
|
按照帖子中描述先检查关于连续IN时ACK状态的处理。
http://www.wch.cn/bbs/thread-86976-1.html 有可能的原因: 1、同步标志出错,主机一直收不到正确的包。 2、ACK状态没有及时的清楚,导致出现意外的包传输,导致包数量出错。 3、USB的中断处理应当完整,仅以贴出代码部分,可能会出现额外的中断状态清除(可能是需要处理的中断) 4、如果是查询法,需要额外注意中断标志的清除,避免误清除 注意事项:尽量缩短printf打印内容,对于处理速度影响较大。 如果条件允许,采用USB分析仪抓包分析,可直接定位到问题所在。 http://www.wch.cn/downloads/USB20Monitor_ZIP.html |
|
|
|
只有小组成员才能发言,加入小组>>
518 浏览 1 评论
CH579M+RT-Thread,RTC从Sleep模式唤醒失败是什么原因?
2901 浏览 2 评论
2397 浏览 1 评论
865浏览 2评论
683浏览 1评论
riscv-none-embed-objcopy: \'PWM_Output.elf\': No such file这个咋解决,
415浏览 1评论
518浏览 1评论
请教一下,Mounriver 编译不成功:找不到库文件,怎么整
810浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 12:43 , Processed in 1.004837 second(s), Total 76, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号