STM32F4+W25Q64实现一个U盘

本文介绍了一个基于STM32的U盘驱动程序制作过程,包括RCC配置、时钟树设置、USB模式选择及W25Q64闪存驱动实现等步骤,并详细说明了中断优先级的重要性。

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

首先使用CUBE生成一个工程

首先是对RCC的配置

然后配置SYS

使用全速USB

配置为大容量存储设备

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

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

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

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

添加U盘的读写函数

获取U盘状态

获取U盘信息

 

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

现在可以正常格式化U盘

好像有点小,造个假

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

做个文件测试下

放到U盘里面,再打开

一直想弄USB来着,今天就调试了下读U程序,自己测试了三个U一个读卡器(U为4G、16G、16G,内存卡为2G)均可正常读取。废话不多说,介绍下实现的功能(各功能通过User键切换): 首先来张靓照,屏幕摔了两块,不敢买第三块了,索性拆了以前山寨机上的屏幕,自己做了个转接板,驱动成功(嘿嘿!) 1、读U信息,包括PID、VID和制造商等信息,如图: 2、读取U容量,用电脑看了下,容量一点不错。还有就是读取文件目录(这里暂时只做了两级显示) 3、创建一个TXT文件,并写入“STM32 Connectivity line Host Demo application using FAT_FS ”,在电脑端打开该TXT文件,其写入字符串正确。 4、显示一张BMP格式的图片(BMP图片显示最直接,就先弄它了),来自于ST 可实际发现,其图片竟然被镜像了,原因还在寻找中(估计是驱动有问题)。不管怎样,U读成功之后,以后玩Discovery就爽多了,各种图片、音乐甚至是AVI视屏都有可能实现啦!还是那句老话,独乐乐不如众乐乐,代码必须得传上来,嘿嘿! 总结: 欢迎各位坛友在此基础之上完成新的功能,例如MP3格式音乐解码播放(WAV格式音乐毕竟非主流,播放一会主芯片还发热,就不搞WAV了)。还有emWin,我目前只是移植成功了,还没学会如何结合自己的需求进行应用,并且FPU功能的异常中断问题还没解决,只能不使用FPU演示。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值