STM32+W25QXX实现模拟U盘-HAL库
材料选取
主控芯片: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库相关推荐
- STM32外挂FLASH模拟U盘(基于HAL库)
STM32外挂FLASH模拟U盘(基于HAL库) 1.背景 1.1这篇文章能给你带来什么 1.2根据你要解决的问题,精确快速跳转到相应位置 1.3我在做完这个后还有不明白的地方,希望能有大触解答困惑 ...
- 嵌入式STM32入门之STM32点灯实践(2)——HAL库
STM32点灯实践(2) 一.前言: 二.HAL库 三.实验工具 1.STM32cubeMx的安装 2.安装HAL库 四.具体实验 1.keil仿真调试 2.上板即可 3.观察GPIO端口的输出波形 ...
- 基于STM32的TFT-LCD触摸屏实验(HAL库)
前言:TFT-LCD作为显示终端必不可少的设备,目前大部分的TFT-LCD都具备了触摸功能.无论是在MCU亦或是SOC(MPU)中,触摸屏的使用都是十分常见的.触摸屏LCD通常分为2种:电阻触摸屏,电 ...
- stm32: 串口空闲中断的实现(HAL库)
STM32利用串口空闲中断来分包(HAL库) 文章目录 STM32利用串口空闲中断来分包(HAL库) 1. 开发环境 2. 串口中断接收的问题和解决办法 3. 串口空闲中断分包的原理 4. STM32 ...
- stm32编码器电机测速(hal库)
记录一下今天参考别人的代码实现了四个电机的测速. 编码器被广泛应用于电机测速,实现电机闭环控制.所以不论是自己做小车还是后续参加各种比赛,必须要学会编码器测速. 一.参数 编码电机其实就是一个带有编码 ...
- 正点原子STM32(基于HAL库)0
目录 开发环境搭建与使用 常用开发工具简介 MDK 安装 仿真器驱动安装 CH340 USB 虚拟串口驱动安装 使用MDK5 编译例程 使用串口下载程序 使用DAP 下载与调试程序 使用DAP 下载程 ...
- 正点原子STM32(基于HAL库)4
目录 ADC 实验 ADC 简介 单通道ADC 采集实验 ADC 寄存器 硬件设计 程序设计 下载验证 单通道ADC 采集(DMA 读取)实验 ADC & DMA 寄存器 硬件设计 程序设计 ...
- STM32的HAL库及其使用
随着时代的逐步发展,联网.USB.文件系统.加密算法.RTOS.GUI等第三方组件变得越来越重要,简陋的标准库已经很难满足当代单片机开发需求了. 事实上,单片机开发在走PC.手机等以CPU为核心的产品 ...
- STM32V107VCT6,基于HAL库的用IO口模拟I2C的0.96寸OLED驱动
前言 作为一个初学者,当然希望有比较好的范例可以学习,但在CSDN和众多家的单片机学习网站,没发现现成的I2C模拟接口的HAL库的0.96寸的OLED驱动,经过努力,把这个代码调试出来,为此,基于技术 ...
最新文章
- js onclick方法
- 网络营销前夕怎样确定网站定位?这是网络营销开展的基础!
- 用 PHP 读取 XML
- Spring IOC流程源码分析
- qhfl-3 Course模块
- 【机器学习技术】高斯过程初探
- allergo 导出光辉配置_请教Allegro导出光绘文件的层要选择哪些层?
- Case:MySQL Federated存储引擎引起的慢SQL优化
- 如何获得桌面上任意一个位置的颜色的 rgb 或者16进制值了
- Linux系统连接以太网与WIFI的方法
- 在衣食住行上训练专注力
- 电源设计满足更大功率密度的需要
- 两点经纬度计算方位角,以正北为0度
- oracle 存储过程语法
- 30天自制操作系统:第一天
- 西北工业大学大学物理(I)下期末考试2021-2022选填解析
- 如何根据实际需求选择合适的三维实景建模方式?
- skynet example
- 《剑指Offer》刷题之最小的K个数
- C/C++读写文件实例