HAL库U盘升级 STM32F407 CUBEMX(文件篇)


一、实物效果

1.升级失败现象

两秒内未检测到U盘红色灯以500ms进行闪烁

未检测到U盘-1

未检测到U盘-2

2.升级成功现象

检测到U盘读取U盘内的bin文件并进行升级,红、黄、蓝三个灯以300ms进行闪烁

检测到U盘-1

检测到U盘-2

二、文件链接

1.原理图+PCB

https://download.csdn.net/download/qq_44742284/87750125

2.程序文件

https://download.csdn.net/download/qq_44742284/87750126


总结

有疑问可以看看上一篇文章
HAL库U盘升级 STM32F407 CUBEMX:FATFS + USB_HOST + USB_OTG_FS

在使用STM32F407芯片时,可以通过HAL库来驱动U盘。以下是基本步骤: 1. 在CubeMX中配置USB OTG FS模块并启用MSC存储器类。 2. 在HAL库中包含相应的头文件和库文件。 3. 初始化USB OTG FS模块并启用MSC存储器类。 4. 在main函数中编写读写U盘的代码。 以下是一个简单的例子: ```c #include "stm32f4xx_hal.h" #include "usb_host.h" #define USB_TIMEOUT 1000 USBH_HandleTypeDef hUSB_Host; int main(void) { HAL_Init(); /* Initialize USB Host Library */ USBH_Init(&hUSB_Host, USBH_UserProcess, 0); /* Add Supported Class */ USBH_RegisterClass(&hUSB_Host, USBH_MSC_CLASS); /* Start Host Process */ USBH_Start(&hUSB_Host); while (1) { /* Handle USB Host Background Tasks */ USBH_Process(&hUSB_Host); /* Check if MSC Device is ready */ if (USBH_MSC_IsReady(&hUSB_Host)) { /* Read Data from U Disk */ uint8_t buf[512]; uint32_t read_len; if (USBH_MSC_Read(&hUSB_Host, buf, 0, sizeof(buf), USB_TIMEOUT, &read_len) == USBH_OK) { /* Do something with the read data */ } /* Write Data to U Disk */ uint32_t write_len; if (USBH_MSC_Write(&hUSB_Host, buf, 0, sizeof(buf), USB_TIMEOUT, &write_len) == USBH_OK) { /* Do something after writing data */ } } } } ``` 在这个例子中,我们使用了USBH_MSC_Read和USBH_MSC_Write函数来读写U盘数据。这些函数将数据写入或从U盘读取,并返回操作结果。当U盘连接并准备就绪时,我们可以在while循环中进行读写操作。 需要注意的是,U盘的读写速度取决于U盘本身的速度,以及USB OTG FS模块的配置和性能。如果出现性能问题,可以尝试调整USB OTG FS模块的配置或使用更高速的U盘
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

饼里个饼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值