请教一个stm32的USB的问题

2020-01-01 17:48发布

程序从0x08000000地址开始运行的话,没问题
自己做了个U盘升级程序,就是把单片机模拟成U盘,应用部分从0x08003800开始运行,当运行到USB配置时,单片机就会卡死。

分析反汇编代码,应该是进入了一个死循环。0x0800011A E7FE      B        0x0800011A值 ; @0x080000FC


请教各位,这是什么原因。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
20条回答
graycker
2020-01-02 17:32
跳转之前断开USB,关中断。应用程序里初始化的部分最好不要有多余的东西,比如未使用但是开启的外设(程序复杂的时候这个比较容易导致问题,特别是中断),在while(1)开始加这句
if (bDeviceState != CONFIGURED)   
    {
     //   if (bDeviceState == SUSPENDED)
      continue;
    },关掉开门狗再试一下

一周热门 更多>