分享 基于HAL库的U盘stm32f4 iap例程

2020-01-04 18:59发布

使用说明:

将新的固件 命名为 new.bin ,放入U盘根目录。

插入开发板,重启

首先会检测U盘new.bin 是否与芯片里面的bin是否一致

如果不一致,就先备份旧的程序,然后再写入新的程序

如果一致,就直接jump to app

QQ截图20190410093706.png (10.08 KB, 下载次数: 0) 下载附件 2019-4-10 09:55 上传

u盘iap.rar (4.72 MB, 下载次数: 166) 2019-4-10 09:53 上传 点击文件名下载附件


整个工程都是基于cubemx生成,改动部分全部在main.c 里面

欢迎大家测试,有bug的话 反馈一下,谢谢
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
28条回答
zjykymt
1楼-- · 2020-01-07 22:55
感谢分享,其实也可以换个思路,在APP中检测USB状态,如果插入USB并检测到并进入BootLoader内内升级也是可以的
Feeling_MCU
2楼-- · 2020-01-08 02:01
我现在出现 FR_DISK_ERR 问题, 一路仿真到这个函数,出现  USBH_BUSY超时,请教下是啥原因呢?

  while (USBH_MSC_RdWrProcess(phost, lun) == USBH_BUSY )  超时
   
  while (USBH_MSC_RdWrProcess(phost, lun) == USBH_BUSY)
  {
    if(((phost->Timer - timeout) > (10000U * length)) || (phost->device.is_connected == 0U))
    {
      MSC_Handle->state = MSC_IDLE;
      return USBH_FAIL;
    }
  }
  MSC_Handle->state = MSC_IDLE;
Feeling_MCU
3楼-- · 2020-01-08 03:28
 精彩回答 2  元偷偷看……
zhcj66
4楼-- · 2020-01-08 05:57
lz有没有写u盘成功过?

一周热门 更多>