Bootloader通过USB虚拟串口在线升级

实验资料
USB从机驱动库,从STM官网下载USBCHO

USB例程,有虚拟串口,鼠标实验等USB的
USB的驱动库
在这里插入图片描述
USB虚拟串口移植:
1.在platform_config.h中添加你板子的芯片,将其他包含的头文件屏蔽掉
在这里插入图片描述
2.修改文件hw_config.c
(1).将库文件中原来的数据删除,定义自己创建的发送接收数据结构
在这里插入图片描述
发送数据的结构体,根据读写指的大小来确定buffer发送多少个字节出去
在这里插入图片描述
(2).屏蔽掉set_systim()函数
在这里插入图片描述
(3)添加两个中断服务函数
在这里插入图片描述
(4)将配置时钟的换掉
在这里插入图片描述
(4)添加进入低功耗代码
在这里插入图片描述
(5)离开低功耗模式
在这里插入图片描述
(6)配置唤醒中断和USB处理中断
在这里插入图片描述
(7).软件控制USB的连接和断开,是通过配置管脚上的1.5 K的电阻连接和断开。由于开发板是直接脸上了1.5k的电阻,所以无法通过软件去控制
在这里插入图片描述
(8)设置USB的断开连接
在这里插入图片描述
(9)添加一个将发送接收变量初始化和能打印串口信息的函数
在这里插入图片描述
(10)将接收到的数据放进定义好的数组(屏蔽掉的数定义接受协议,根据回车换行来判断数据有没有接收完毕)
在这里插入图片描述
(11)发送一个字节到USB虚拟串口的程序
在这里插入图片描述
(12)创建usb_printf函数,作用类似于串口的printf
在这里插入图片描述
(13).创建数据存放的数组。
在这里插入图片描述
编写main.c文件
(1)初始化USB虚拟串口
在这里插入图片描述
(2)接收字节的回调函数
在这里插入图片描述

(3)等待接收完毕,将存储在USB_USART_RX_BUF内的数据发送回上位机
判断接收完毕的标志:
当延迟10ms了,接收到的字节数还不会发改变时,则接收数据完毕

在这里插入图片描述
(4).将数据写入内部FLASH,要指定写入的趋势地址,BUFFER和长度

在这里插入图片描述
写FLASH操作
(1)先解锁
(2) 清除标志位
(3)擦除扇区
(4) 写入数据
(5)上锁
代码:
在这里插入图片描述
跳转程序
指定一个APP地址进行跳转,在APP程序里要设置中断向量的偏移
在这里插入图片描述
下载USB虚拟串口驱动
根据操作系统的版本来安装驱动
在这里插入图片描述

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 通过U盘升级程序是一种方便且常用的方法来更新STM32F4的固件。下面是简要的步骤: 1. 准备工作:确保你已经准备好了一个可用的U盘和要更新的固件文件。 2. 将固件文件复制到U盘:将要更新的固件文件复制到U盘的根目录下(确保没有其他文件或文件夹存在于U盘根目录)。 3. 连接U盘:将U盘插入你的计算机的USB接口。 4. 启动STM32F4:通过USB线将STM32F4板连接到你的计算机,并通过ST-Link或者其他具有虚拟串口功能的USB接口。 5. 进入Bootloader模式:按下STM32F4板上的BOOT0引脚或者使用开发环境的烧写工具来进入Bootloader模式。 6. 打开DFU模式:在Bootloader模式下,STM32F4会被识别为USB设备。打开计算机上的DFU工具,并选择STM32F4设备(通常会以STM开头)。 7. 下载固件文件:在DFU工具中,选择"下载"或者"升级"选项,并浏览到U盘中的固件文件。点击"开始"或者"下载"按钮开始下载固件文件。 8. 等待升级完成:DFU工具会自动将固件文件下载到STM32F4中。等待过程完成,并确保不要中断电源或者拔出USB连接。 9. 完成升级升级完成后,DFU工具会显示"下载完成"或者类似的提示。此时,你可以断开USB连接并重新启动STM32F4。 通过以上步骤,您就可以使用U盘来升级STM32F4的固件。请注意,在升级过程中要确保固件文件正确,不要中断电源或者拔出USB连接,以免导致升级失败。 ### 回答2: 在STM32F4系列微控制器上,可以通过U盘进行程序升级。具体步骤如下: 1. 首先,需要在STM32F4上实现USB功能。这可以通过使用STM32Cube库或HAL库来设置USB设备模式完成。 2. 在程序中,需要初始化USB接口以便电脑可以识别STM32F4作为一个存储设备。这可以通过初始化USB HID设备或者USB MASS存储设备来完成。 3. 当STM32F4连接到电脑上时,电脑将会把STM32F4识别为一个U盘设备。此时,可以通过文件资源管理器访问到STM32F4的存储空间。 4. 将需要升级的程序文件复制到STM32F4的存储空间中。这个程序文件应该是.bin或者.hex格式。 5. 复制完成后,断开STM32F4与电脑的连接。 6. 在STM32F4上,程序可以通过读取存储空间中的程序文件并将其写入到芯片的闪存中来进行升级。 7. 升级完成后,重启STM32F4,新的程序将会在启动时执行。 需要注意的是,在程序升级过程中需要确保芯片上的程序没有运行或者访问闪存的操作,以免发生冲突。同时,升级过程中也需要校验和验证升级文件的完整性,保证升级的正确性。 综上所述,STM32F4可以通过U盘进行程序升级,需要实现USB功能并设置为USB存储设备,将程序文件复制到存储空间中,然后通过读取并写入闪存来进行升级。 ### 回答3: 要通过U盘升级STM32F4的程序,需要按照以下步骤进行操作: 1. 首先,确保STM32F4的固件已经配置为支持通过U盘升级程序。在开发环境中,需要将Boot0引脚连接到高电平,并将Boot1引脚连接到低电平。这样可以使芯片进入启动模式。 2. 准备一个格式化为FAT32文件系统的U盘,并在根目录下新建一个名为"firmware.bin"的文件。这个文件将用于存储新的程序固件。 3. 将新的程序固件使用开发环境中的烧录工具编译生成的bin文件复制到U盘的根目录下,并将其重命名为"firmware.bin"。 4. 将U盘插入计算机,并将STM32F4插入计算机的USB接口。确保芯片正常被识别,并通过正确的驱动程序与计算机通信。 5. 在计算机上打开烧录工具,选择通过U盘进行升级的方式,并选择对应的COM端口。 6. 点击“开始”按钮,烧录工具将开始检测U盘中的固件文件,并将其下载到芯片中进行升级。这个过程可能需要一些时间,需要耐心等待。 7. 等待烧录工具提示升级完成,并断开U盘和芯片的连接。 通过以上步骤,就可以通过U盘升级STM32F4的程序了。需要注意的是,确保芯片的引脚配置正确,并且新的固件文件存放在U盘的根目录下,并且命名为"firmware.bin"。此外,在升级过程中要确保电源供应稳定,避免意外断电导致升级失败。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值