打印
[STM32F2]

重启十次大概能进一次

[复制链接]
804|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
renyaq|  楼主 | 2021-12-7 20:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现在在搞U盘IAP,STM32F207,用的官方2.1.0库,USE_USB_OTG_FS,8M外接晶振
在MDK的设置里面已经把Xtal从25改为8MHz
代码里面也把HSE_VALUE改为8M,PLL_M改为8
OTG_FS_IRQHandler有时能进,大多数情况下进不了,重启十次大概能进一次

使用特权

评论回复
沙发
juventus9554| | 2021-12-7 20:15 | 只看该作者

然后呢?你是怎么应对这个的呢

使用特权

评论回复
板凳
renyaq|  楼主 | 2021-12-7 20:17 | 只看该作者
在中断函数能进去的情况下,USBH_MSC_Read10一直返回USBH_MSC_BUSY,死循环。原因是USBH_MSC_Read10里USBH_MSC_BOTXferParam.CmdStateMachine即不是CMD_SEND_STATE,也不是CMD_WAIT_STATUS,直接走的是default分支

使用特权

评论回复
地板
dingy| | 2021-12-7 20:19 | 只看该作者
这个思路就是烧录一段代码,当插入U盘后识别关键词,然后获取版本代码,如果跟本系统的版本代码不同或者要求版本更高就开始读取,然后写入指定的地址段。

使用特权

评论回复
5
supernan| | 2021-12-7 20:20 | 只看该作者

读取的标志位一直是忙的,那么是不是初始化时候要清除该标志位才行呢

使用特权

评论回复
6
renyaq|  楼主 | 2021-12-7 20:23 | 只看该作者

谢谢楼上的回答, 我的问题不是如何实现IAP, 而是为什么有时候不会中断, 还有怎么解决USBH_MSC_BUSY死循环问题

使用特权

评论回复
7
guoyt| | 2021-12-7 20:25 | 只看该作者
换晶振试试

使用特权

评论回复
8
houcs| | 2021-12-7 20:29 | 只看该作者
需要知道那个标志位是干啥用的,是不是需要初始化的时候清理一下。

使用特权

评论回复
9
renyaq|  楼主 | 2021-12-7 20:30 | 只看该作者

1、编译器版本问题;
2、时钟问题。

使用特权

评论回复
10
stly| | 2021-12-7 20:32 | 只看该作者
程序不稳定,和你的程序有关,好好的分析代码吧。

使用特权

评论回复
11
xxrs| | 2021-12-7 20:34 | 只看该作者
是不是初始化时候需要清除该标志位

使用特权

评论回复
12
wyjie| | 2021-12-7 20:36 | 只看该作者
说明不稳定啊

使用特权

评论回复
13
renyaq|  楼主 | 2021-12-7 20:38 | 只看该作者

嗯,那我按大家的说法挨个排查一下,谢谢哈

使用特权

评论回复
14
gouguoccc| | 2021-12-7 20:51 | 只看该作者
看下代码还有其他地方没有改到

使用特权

评论回复
15
tpgf| | 2022-1-5 10:07 | 只看该作者
那你这个概率太低了

使用特权

评论回复
16
paotangsan| | 2022-1-5 10:13 | 只看该作者
说明非常的不稳定 还是检查硬件吧

使用特权

评论回复
17
renzheshengui| | 2022-1-5 10:15 | 只看该作者
不成功的时候报错吗

使用特权

评论回复
18
wakayi| | 2022-1-5 11:12 | 只看该作者
初始化的时候为什么要清除标志位啊

使用特权

评论回复
19
wowu| | 2022-1-5 11:25 | 只看该作者
不成功的时候是卡在哪里了呢

使用特权

评论回复
20
xiaoqizi| | 2022-1-5 11:27 | 只看该作者
是不是因为太快不稳定啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

700

主题

10138

帖子

4

粉丝