STM32F4+W25Q64实现一个U盘

参加工作之后,对U盘功能的使用还是比较频繁,这里简单的做个U盘,实验出来。

首先使用CUBE生成一个工程

STM32F4+W25Q64实现一个U盘

首先是对RCC的配置

STM32F4+W25Q64实现一个U盘

然后配置SYS

STM32F4+W25Q64实现一个U盘

使用全速USB

STM32F4+W25Q64实现一个U盘

配置为大容量存储设备

STM32F4+W25Q64实现一个U盘

然后是时钟树的配置,USB配置为48M

STM32F4+W25Q64实现一个U盘

生成一个工程,编译烧录,可以看到电脑已经有盘符出现了

STM32F4+W25Q64实现一个U盘

不过现在还不能使用,现在添加我的W25Q64    驱动程序,驱动程序就不讲了,轮子自己造

首先初始化U盘,也就是初始化W25Q64

STM32F4+W25Q64实现一个U盘

添加U盘的读写函数

STM32F4+W25Q64实现一个U盘

STM32F4+W25Q64实现一个U盘

获取U盘状态

STM32F4+W25Q64实现一个U盘

获取U盘信息

STM32F4+W25Q64实现一个U盘


最后,一定注意中断优先级的处理让USB中断优先级低于W25Q64和DMA的优先级,否则U盘配置会出问题

STM32F4+W25Q64实现一个U盘

现在可以正常格式化U盘

STM32F4+W25Q64实现一个U盘

好像有点小,造个假

STM32F4+W25Q64实现一个U盘

实际上只有8M的大小(W25Q64只有这么大)

做个文件测试下

STM32F4+W25Q64实现一个U盘

放到U盘里面,再打开

STM32F4+W25Q64实现一个U盘

STM32F4+W25Q64实现一个U盘