嵌入式:基于stm32f103rc 实现SPI+FLASH实现USB大容量设备

环境

硬件:stm32f103rc

在这里插入图片描述
这里提一下,一般来说,USB是需要接上拉电阻的,同时D+上需要接一个3.3v的电压,对于正点原子的stm32f407探索者来说,按照本例程的话,生成会无效,无法识别。应为正点原子的407USB电路不一致。

软件:stm32cubemx

步骤

1.生成初始化文件

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这里我已经对工程改了,如果你没有改的话,需要进行一下设置
在这里插入图片描述
在这里插入图片描述
测试:插上USB线,会出现以下,即为正确。
在这里插入图片描述
这里是做完了,会出现一个U盘的枚举,但是你无法对其操作,这里因为读写操作的API没接。
有问题的话,检查以下情况:

1.USB设备的干扰:本人有两个USB口,发现直接USB口,可正常使用,否则有干扰。

2.USB设备的电路:这个实验一开始使用的正点原子407,发现就是不行,后续更换开发板,发现可以,总结就是电路问题,请比较电路连接和硬件区别。

3.堆栈大小:部分的开发板,发现和堆栈的设置有关,可修改。

2.添加FLASH w25系列万能驱动

驱动来源于网上,由于是GitHub上,本人已fork,详细可参看工程。
使用事项:
在这里插入图片描述
测试连接性的话,可以通过如下方式:
在这里插入图片描述
如果读取是你的FLASH,即为正确。

3.自定义USB文件

最后的一个,修改USB的配置文件。

在这里插入图片描述
一共要4个地方,分别为3个函数:
在这里插入图片描述
在这里插入图片描述
这里可以使用默认的
在这里插入图片描述
测试:

1.USB设备读写

在这里插入图片描述

2.断电重新连接

在这里插入图片描述
驱动文件:
https://gitee.com/linyuehai/stm32-f103-rc/tree/master/w25qxx%E4%B8%87%E8%83%BD%E9%A9%B1%E5%8A%A8
工程文件:
https://gitee.com/linyuehai/stm32-f103-rc/tree/master/
也可以查看项目工程

猜你喜欢

转载自blog.csdn.net/GongmissYan/article/details/115855157