STM32F4+W25Q64实现一个U盘

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

首先使用CUBE生成一个工程

首先是对RCC的配置

然后配置SYS

使用全速USB

配置为大容量存储设备

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

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

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

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

添加U盘的读写函数

获取U盘状态

获取U盘信息

 

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

现在可以正常格式化U盘

好像有点小,造个假

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

做个文件测试下

放到U盘里面,再打开

  • 5
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
一直想弄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演示。
实现STM32 USB与W25Q闪存芯片的u盘功能,需要完成以下步骤: 1. 硬件连接:将STM32微控制器与W25Q闪存芯片进行正确的连接。通常,W25Q芯片使用SPI接口与STM32通信,所以需要将SPI接口的引脚进行正确的连接。 2. STM32配置:使用STM32的开发环境,如STM32CubeMX和Keil等,配置STM32的USB和SPI相关的引脚和寄存器。首先,使能STM32的USB外设,并配置为USB设备模式。然后,配置SPI外设的相关寄存器,设置通信速度、位序和数据格式等。 3. 编写代码:使用C语言编写STM32的固件代码,通过STM32的USB外设与主机进行通信。在代码中,需要实现USB设备的初始化、中断处理函数、发送和接收数据的功能。同时,还需要编写与W25Q闪存芯片进行通信的代码,以实现对闪存芯片的读写操作。 4. 实现u盘功能:当STM32与主机建立连接后,根据主机发送的命令,通过USB接口与W25Q闪存芯片进行读写操作。主机可以向STM32发送读取文件列表、读取文件内容、写入文件内容等命令,STM32根据命令执行对应的操作,并通过USB接口与主机进行数据传输。 5. 调试和测试:完成代码的编写后,通过STM32的仿真器或者调试器将代码下载到开发板中进行测试。可以使用主机连接开发板,测试主机与开发板之间的通信是否正常,能否读写文件等。 总结:通过配置STM32的USB和SPI外设,并编写对应的代码,可以实现STM32与W25Q闪存芯片的u盘功能。在此基础上,根据需求可以扩展更多功能,例如支持文件加密、文件夹管理等。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值