VS code+STM32CubeMX 使用 FreeRTOS+FatFS+USB_DEVICE 搭建 SD卡 读卡器 和 读写 SD卡 示例项目
文章目录
- 1. 新建项目
- 2. 配置 CubeMX 项目
- 3. 配置 EIDE 项目
- 4. 编写代码
- 5. 编译下载
- 6. 效果展示
本例介绍如何使用 vscode 插件 EIDE 和 STM32CubeMX 开发 STM32 项目,并实现一个 使用 FreeRTOS+FatFs 读写 SD 卡,同时将STM32 变成一个 SD卡 读卡器 的示例程序
**注:**本例使用的芯片是 STM32F407VGT6,编译器为 GCC
1. 新建项目
- 打开 EIDE,新建一个 Cortex-M MCU 空项目,然后打开,将工具链切换到 GCC;
- 打开 CubeMX,新建一个STM32F4 项目,并保存到上一步新建的 EIDE 项目目录中
- 修改 CubeMX 的代码生成选项
2. 配置 CubeMX 项目
- 时钟配置
- 启用 SWD 调试接口,将 HAL 库的时基源选择为一个通用定时器(因为 Systick 将会被 FreeRTOS 占用)
- 启用 FreeRTOS,设置 堆大小 和 内存分配算法,并配置 任务
配置两个任务
- 使能外设 SDIO,4 线模式,并配置时钟 6MHz,使用 DMA
使能 SDIO DMA 传输
- 启用 FatFs,进行一些简单的配置
FatFs 平台设置
- 使能外设 USB_OTG_FS
- 启用 USB_DEVICE,选择大容量储存设备
- 使能外设 UART1,用来打印日志
- 使能 SDIO 全局中断,配置中断优先级
- 最后一步,点击 GENERATE CODE 生成代码到 EIDE 项目目录下,结果如下图
3. 配置 EIDE 项目
- 将启动文件 startup_stm32f407xx.s 复制到 Core/src 里
- 点击添加源文件目录,将生成的代码目录加到项目中
- 打开 Makefile,将要用的宏添加到项目
- 配置编译选项
设置芯片类型,硬件浮点
将 useCustomScatterFile 设置为 true,将 scatterFilePath 设置成 cubeMX 生成的链接脚本
4. 编写代码
- 实现 printf 函数的底层接口
- 新建两个源文件,添加一些更方便的日志打印函数
- 实现 usbd_storage_if.c 中的接口函数,共 4 个
- 为 MainTask 任务添加示例代码,功能:每隔 10s 读取文件 abcd.txt 的内容,并打印到串口
- 为 LedIndicator 任务添加闪烁指示灯的代码,此处使用 PA1,要使用其他引脚请在 cubeMX 中完成配置,然后重新生成代码
- 为 Error_Handler 和 assert_failed 添加一些日志提示
5. 编译下载
- 点击 Rebuild 开始编译,生成了大约 222 KB 的可执行程序
- 把板子的 usb 接到电脑,连接好串口,给 SD 卡槽插上 SD 卡,连接好仿真器,在 EIDE 上配置好烧录器,点击 Upload To Device 下载到芯片
6. 效果展示
- 等待一会,发现电脑已成功识别 STM32 读卡器
- 打开磁盘,新建一个 abcd.txt 文本文件,随便输入一些内容,然后保存
打开串口监视器,发现已输出文件的内容
- 再次更改文件的内容,并保存
发现已成功打印更改后的文件内容
VS code+STM32CubeMX 使用 FreeRTOS+FatFS+USB_DEVICE 搭建 SD卡 读卡器 和 读写 SD卡 示例项目相关推荐
- Stm32CubeMx lwip+freeRTOS TCP 服务
如何添加lwip参照上一篇 stm32CubeMx lwip + freeRTOS 今天讲一下,如何添加TCP服务 LwIP 提供了三种编程接口,分别为 RAW/Callback API.NETC ...
- STM32CubeMX+SPI+FATFS读写SD卡
一.软件硬件说明 软件:STM32CubeMX V6.6.1 /KEIL5 V5.29 硬件:正点原子mini开发板,SD卡,通过SPI方式驱动SD卡,用的是SPI1接口 以上内容来源于正点原子min ...
- STM32CubeMX配置freertos配置任务(一)
使用STM32CubeMX 配置Freertos 生成一个任务点亮LED stm32cubemx STM32CubeMX 是 ST 意法半导体近几年来大力推荐的STM32 芯片图形化配置工具, 允许用 ...
- 认证服务器的搭建_SpringCloud搭建的认证中心和资源服务器的微服务项目源码分享...
本项目基于spring-cloud-starter-oauth2搭建的认证中心和资源服务器的微服务项目,项目不仅仅简单的demo,项目的出发点在于实战应用.本项目为笔者花了不少时间和精力整理出来的,只 ...
- STM32F407ZGT6 fatfs出现挂载成功,但是文件读写失败的原因
使用正点原子的板子f407,使用野火代码参考博客 2021-07-25 野火板子25MHz晶振改为正点原子8MH晶振_Car12-CSDN博客 参考源码 修复了野火的bug,使用cubemx初始化代码 ...
- docker搭建upsource代码审查工具,通过gitlab检出项目
docker搭建upsource代码审查工具,通过gitlab检出项目 机器配置 docker搭建upsource代码审查工具,通过gitlab检出项目 拉取镜像 创建挂载目录 启动容器 配置账号密码 ...
- stm32 Fatfs 读写SD卡
源:stm32 Fatfs 读写SD卡 转载于:https://www.cnblogs.com/LittleTiger/p/4864052.html
- vant 项目_基于 vue3.x+vant3.x 搭建示例项目
今天给大家分享一些如何使用Vue3.0+Vant3搭建demo项目. 目前市面上有关vue3的项目并不多,vue3的UI组件库有ant-design-vue和vant-ui. 接下来讲解下使用vue3 ...
- 使用宝塔搭建环境,以及把自己本地的Web项目通过宝塔发布到远程云服务器上
文章目录 使用宝塔搭建环境,以及把自己本地的Web项目通过宝塔发布到远程云服务器上 XSheel连接到远程云服务器之后使用宝塔搭建环境 使用宝塔搭建服务器的环境 什么是搭建服务器环境 1.安装宝塔 2 ...
最新文章
- 程序怎么才能把自己的删除掉?
- SQL SERVER 中identity
- 【数论】Crash的数字表格 / JZPTAB(P1829)
- js设置select列表中特定项为选中状态
- 2019贵州大学计算机研究生,贵州大学2019年硕士研究生招生拟录取名单公示(一)...
- 7. Deep Learning From Scratch
- java windows 2008_Windows server 2008 R2 安装Java环境
- 马云:蚂蚁最应该感谢微信;波音软件修复文件不合格;谷歌开源Cardboard|极客头条...
- 传奇gm命令怎么用_传奇GM常用命令
- PHP 中的对象传递
- 黑群晖二合一已损毁_黑群晖DSM6.2硬盘引导二合一镜像以及安装方法
- python爬虫从基础到实战一站式服务
- spring注解@Lazy
- xsh报告-推荐系统
- Linux容器的安装链接
- Excel数组与数组公式
- 人工智能一大技术:强化学习(RL)
- echarts移除百度地图logo方法
- Java Security:Java加密框架(JCA)简要说明
- 热炒了的《消防设施操作员》,想报考却为何冷中带静?