完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
最近使用STM32F429的USB_OTG_FS做了一个BOOTLOADER可通过USB(PA11,PA12)读取U盘中的文件或者UART二选一更新APP。UART升级一切正常,唯有USB升级有个小问题:升级过程都一切顺利,但是到了要跳转到APP时芯片先是背光驱动IO无输出或输出低电平(其它IO状态未知,怀疑和背光驱动IO相似)等了几秒后芯片复位,复位后也能正常进入APP。但就是复位之前那段时间要等好几秒不明白是什么原因。如果是HardFault异常中断,我的看门狗没有使能,芯片没理由复位啊?这个问题无法仿真,因为一旦芯片复位仿真器就与芯片失去同步了。我通过将代码一段一段注释排除发现:如将"USBH_Process( USB_OTG_Core, USB_Host);"函数及所在的循环注释就不会发生复位问题跳转APP正常,求高人解惑。
U盘升级函数:
另外说明下,APP中未用到USB功能并且我在跳转前也关闭了中断的,不知为何还是会发生异常。 |
|
相关推荐
2个回答
|
|
建议将工程上传才方便排查原因,只需要最少但是必须的功能代码,只包含USB升级功能的代码,这样看代码看不出问题。也可能是应用程序地址分配问题。
|
|
|
|
升级过程中出现异常的原因可能有很多,请检查以下几点:
1. 跳转到APP时,可能是因为中断向量表没有正确设置导致。请确保正确设置了中断向量表的地址。 2. 可能是由于跳转时未正确关闭或初始化某些外设引起的。请确保在跳转之前,关闭或初始化所有需要的外设。 3. 如果跳转到APP时芯片先是背光驱动IO无输出或输出低电平,可能是由于IO引脚配置或电平设置不正确导致。请检查相关代码,确保正确配置了背光驱动IO的引脚和电平。 4. 芯片复位前等待几秒钟的时间可能是由于某些操作需要时间完成,或者是在跳转之前需要等待某些条件满足。请仔细检查代码,确定是否有等待条件或操作未完成。 5. 如果通过将代码一段一段注释掉来调试,但无法定位问题所在,可能是因为问题发生在代码被跳转到APP之前的硬件操作中。请仔细检查代码中的硬件操作,确保正确配置和操作硬件。 6. 如果无法在仿真器下调试问题,可以尝试使用printf或者串口调试工具输出一些调试信息或错误码,以帮助定位问题所在。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1617 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1543 浏览 1 评论
977 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
683 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1595 浏览 2 评论
1863浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
645浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
516浏览 3评论
532浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
505浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 12:01 , Processed in 0.662341 second(s), Total 51, Slave 44 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号