材料选取

主控芯片:STM32F103C8T6
储存芯片:W25Q16
线性稳压芯片:3.3V稳压SOT-23-5封装

原理图绘制

电源输入及稳压部分:
D+数据线上必须加1K的上拉电阻,否则不能通信

单片机最小系统(网络KEY1~3、SWCLK、SWDIO未使用)

存储芯片:使用芯片的SPI2端口

软件安装

软件:STM32CubeMx
软件下载步骤:
1.使用浏览器搜索“stm32cubemx官网”
2.找到点击进入
3.往下滑,找到获取软件,选择对应的操作系统的版本下载安装

软件使用

1.打开软件
2.在主页点击file->New Project,等待数据加载完成
3.选择芯片型号,完成后点击右上角“start Project”

4.配制程序下载方式(jink下载)

5.RCC配制

6.SPI通信口模式配制(全双工主机模式)
选择PB12作为片选控制引脚
配制其端口模式引脚初始化电平



7.勾选USB驱动

8.配制USB,选择大容量存储器,将扇区大小改为4096

9.系统时钟树设置

8.项目名及储存地址设置
Toolchain/IDE这里一定要选择“MDK-ARM”,版本可以选低一点

9.完成后点击“GENERATE CODE”

10.代码生成后,打开代码,想其中添加存储器的驱动文件。
11.在文件中,找到usbd_storage_if.c

修改STORAGE_BLK_NBR 值,改为存储器扇区数量,例如W25Q16 容量为2M字节,共有16个Block,512个Sector
修改STORAGE_BLK_SIZ 4096扇区的大小

此处添加存储器驱动初始化函数

此处添加


修改后重新编译,即可。
但是如果在此基础上再添加FATFS系统的会,则需要修改参数
扇区大小改为512字节,扇区数量:2048 * 容量
读写函数中地址和长度<<12改为<<9或是 * 512,即一个扇区的大小。

STM32+W25QXX实现模拟U盘-HAL库相关推荐

  1. STM32外挂FLASH模拟U盘(基于HAL库)

    STM32外挂FLASH模拟U盘(基于HAL库) 1.背景 1.1这篇文章能给你带来什么 1.2根据你要解决的问题,精确快速跳转到相应位置 1.3我在做完这个后还有不明白的地方,希望能有大触解答困惑 ...

  2. 嵌入式STM32入门之STM32点灯实践(2)——HAL库

    STM32点灯实践(2) 一.前言: 二.HAL库 三.实验工具 1.STM32cubeMx的安装 2.安装HAL库 四.具体实验 1.keil仿真调试 2.上板即可 3.观察GPIO端口的输出波形 ...

  3. 基于STM32的TFT-LCD触摸屏实验(HAL库)

    前言:TFT-LCD作为显示终端必不可少的设备,目前大部分的TFT-LCD都具备了触摸功能.无论是在MCU亦或是SOC(MPU)中,触摸屏的使用都是十分常见的.触摸屏LCD通常分为2种:电阻触摸屏,电 ...

  4. stm32: 串口空闲中断的实现(HAL库)

    STM32利用串口空闲中断来分包(HAL库) 文章目录 STM32利用串口空闲中断来分包(HAL库) 1. 开发环境 2. 串口中断接收的问题和解决办法 3. 串口空闲中断分包的原理 4. STM32 ...

  5. stm32编码器电机测速(hal库)

    记录一下今天参考别人的代码实现了四个电机的测速. 编码器被广泛应用于电机测速,实现电机闭环控制.所以不论是自己做小车还是后续参加各种比赛,必须要学会编码器测速. 一.参数 编码电机其实就是一个带有编码 ...

  6. 正点原子STM32(基于HAL库)0

    目录 开发环境搭建与使用 常用开发工具简介 MDK 安装 仿真器驱动安装 CH340 USB 虚拟串口驱动安装 使用MDK5 编译例程 使用串口下载程序 使用DAP 下载与调试程序 使用DAP 下载程 ...

  7. 正点原子STM32(基于HAL库)4

    目录 ADC 实验 ADC 简介 单通道ADC 采集实验 ADC 寄存器 硬件设计 程序设计 下载验证 单通道ADC 采集(DMA 读取)实验 ADC & DMA 寄存器 硬件设计 程序设计 ...

  8. STM32的HAL库及其使用

    随着时代的逐步发展,联网.USB.文件系统.加密算法.RTOS.GUI等第三方组件变得越来越重要,简陋的标准库已经很难满足当代单片机开发需求了. 事实上,单片机开发在走PC.手机等以CPU为核心的产品 ...

  9. STM32V107VCT6,基于HAL库的用IO口模拟I2C的0.96寸OLED驱动

    前言 作为一个初学者,当然希望有比较好的范例可以学习,但在CSDN和众多家的单片机学习网站,没发现现成的I2C模拟接口的HAL库的0.96寸的OLED驱动,经过努力,把这个代码调试出来,为此,基于技术 ...

最新文章

  1. js onclick方法
  2. 网络营销前夕怎样确定网站定位?这是网络营销开展的基础!
  3. 用 PHP 读取 XML
  4. Spring IOC流程源码分析
  5. qhfl-3 Course模块
  6. 【机器学习技术】高斯过程初探
  7. allergo 导出光辉配置_请教Allegro导出光绘文件的层要选择哪些层?
  8. Case:MySQL Federated存储引擎引起的慢SQL优化
  9. 如何获得桌面上任意一个位置的颜色的 rgb 或者16进制值了
  10. Linux系统连接以太网与WIFI的方法
  11. 在衣食住行上训练专注力
  12. 电源设计满足更大功率密度的需要
  13. 两点经纬度计算方位角,以正北为0度
  14. oracle 存储过程语法
  15. 30天自制操作系统:第一天
  16. 西北工业大学大学物理(I)下期末考试2021-2022选填解析
  17. 如何根据实际需求选择合适的三维实景建模方式?
  18. skynet example
  19. 《剑指Offer》刷题之最小的K个数
  20. C/C++读写文件实例

热门文章

  1. 程序员可迁移技能的培养
  2. 三点运算符(...)的使用
  3. 英国设计师发明不用手撑的雨伞
  4. 微信公众平台开发-java
  5. 运行项目页面显示“该网页无法正常运作”的解决办法 - 前端篇
  6. Dynamics 365 你所期待的子网格编辑终于来了
  7. 多人协作共享画板——多人画板的bug及分析
  8. 全国默哀日中小程序显示灰色
  9. EDM设计案例分享:6款引人入胜的夏日邮件营销模板分享
  10. 4、GET和POST的区别