STM32CubeMx + makefile --- 文件系统 fatfs
STM32CubeMxmakefile— 文件系统fatfs源码仓库: 码云仓库文章目录STM32CubeMx makefile --- 文件系统fatfs[toc]环境添加串口打印printfSTM32CubeMX 配置配置 SDMMC配置 FATFS时钟配置设置栈空间生成 makefile 项目修改代码编译 (略)烧录 (略)运行环境工具版本说明开发板小熊派IoT开发板建议相同ubuntu16.04版本关系不大STM32CubeMXV6.3.0建议相同L4软件包STM32Cube FW_L4 V1.16.0建议相同STM32CubeProgrammerv2.8.0版本关系不大交叉编译工具链gcc-arm-none-eabi-10.3-2021.07版本关系不大添加串口打印printf请看STM32CubeMx makefile --- 添加串口打印printf章节STM32CubeMX 配置配置SDMMC如下图所示:配置FATFS如下图所示:时钟配置如下图所示:设置栈空间需要增加栈空间的大小, 如下图所示:生成makefile项目注意 : 如果警告配置有误, 请忽略提示, 直接选择 YES 生成修改代码思路:将生成的代码复制到ubuntu上面修改编译, 或者修改好了上传到ubuntu上编译修改stm32cubemx_makefile_sd_fatfs\Src\main.c文件添加 如下代码#includetest_fatfs.htest_fatfs();添加Src/test_fatfs.c和Inc/test_fatfs.h文件Makefile添加Src/test_fatfs.c \Src/test_fatfs.h文件添加代码test_fatfs()声明#ifndef_TEST_FATFS_H#define_TEST_FATFS_Hvoidtest_fatfs(void);#endifSrc/test_fatfs.c文件添加代码test_fatfs()实现#includefatfs.hvoidtest_fatfs(void){FATFS fs;FIL fil;uint32_tw_datas_num;// 写数据长度uint32_tr_datas_num;// 读数据长度uint8_tw_datas[]hello iotxiaohu;// 写的数据uint8_tr_datas[100];// 存放读出来的数据charfilen_name[]test_fatfs.txt;// 文件名printf(\n ****** test fatfs ******\n\n);/* 注册文件系统*/retSDf_mount(fs,,0);if(retSD){printf( mount error : %d \n,retSD);return;}printf( mount OK!!! \n);/* 创建并且打开文件 */retSDf_open(fil,filen_name,FA_CREATE_ALWAYS|FA_WRITE);if(retSD){printf( open file error : %d\n,retSD);return;}printf( open file OK!!! \n);/* 写文件 */retSDf_write(fil,w_datas,sizeof(w_datas),(void*)w_datas_num);if(retSD){printf( write file error : %d\n,retSD);return;}printf( write file OK!!! \n);printf( write Data : %s\n,w_datas);/* 关闭文件 */retSDf_close(fil);if(retSD){printf( close error : %d\n,retSD);return;}printf( close OK!!! \n);/* 打开文件 */retSDf_open(fil,filen_name,FA_READ);if(retSD){printf( open file error : %d\n,retSD);return;}printf( open file OK!!! \n);/* 读取文件 */retSDf_read(fil,r_datas,sizeof(r_datas),(UINT*)r_datas_num);if(retSD){printf( read error!!! %d\n,retSD);return;}printf( read OK!!! \n);printf( read Data : %s\n,r_datas);/* 关闭文件 */retSDf_close(fil);if(retSD){printf( close error!!! %d\n,retSD);return;}printf( close OK!!! \n);/* 比较读取的是否与写的一致 */if(r_datas_numw_datas_num){printf( test fatfs OK!!!\n);}}编译 (略)烧录 (略)运行连接串口, 打开串口调试工具如下:

相关新闻

光储直柔:从刚性消费到柔性电网节点的建筑配电革命

光储直柔:从刚性消费到柔性电网节点的建筑配电革命

从“抽水马桶”变成“蓄水池”,这句话是我这两年和建筑业主聊配电改造时,最常用的一句类比。过去建筑用电是典型的刚性消费:光伏发多少、电网供多少,楼里就用多少,用不完的就浪费,不够了就向电网要&#xf…

2026/10/11 4:01:56 阅读更多 →
SAP MDG 功能范围说明(基于S/4HANA 2025)

SAP MDG 功能范围说明(基于S/4HANA 2025)

文章目录业务背景Master Data Governance (MDG)MDG, Central GovernanceMDG, ConsolidationMDG, Mass ProcessingMDG, Data quality managementMDG, Federated master data governanceMDG, Process analytics for master data主要功能业务背景 Master Data Governance (MDG) …

2026/10/11 4:01:55 阅读更多 →
Playwright自动化测试实战:从定位器到工程化落地

Playwright自动化测试实战:从定位器到工程化落地

1. 项目概述与整体设计思路1.1 为什么自动化测试在这个阶段值得重新选型我真正开始大规模把 Playwright 自动化测试用到业务项目里,差不多是在两年前。之前团队做 Web 端回归,用的还是老一套的 Selenium 体系,脚本写起来倒不难,真…

2026/10/11 4:01:55 阅读更多 →

最新新闻

软件测试职业进阶指南:从功能测试到测试开发的成长路径

软件测试职业进阶指南:从功能测试到测试开发的成长路径

1. 行业现状与职业地图:先看清测试这盘棋软件测试这个行当,这几年被讨论得很多。一边是互联网大厂高薪招自动化测试、测试开发工程师,一边是很多人抱怨“点点点”没前途、工资低、容易被替代。这种两极分化的观感,恰恰说明了行业正…

2026/10/11 4:50:24 阅读更多 →
Cursor高频快捷键深度指南:从Tab补全到AI编程操作系统

Cursor高频快捷键深度指南:从Tab补全到AI编程操作系统

1. 为什么说“Cursor 别只用来按 Tab”是个真问题——从一个被低估的AI编程工具说起Cursor 这个名字听起来像极了编辑器里那个一闪一闪的小竖线,但实际用过的人很快就会发现:它根本不是“另一个 VS Code 换皮”,而是一套把 AI 编程能力深度缝…

2026/10/11 4:50:24 阅读更多 →
文本批量替换工具实操指南:匹配模式、正则与避坑要点

文本批量替换工具实操指南:匹配模式、正则与避坑要点

简介:随风文本替换专家 v2.0 是一款轻量级文本批量处理软件,面向需要频繁处理多文件的程序员、编辑、数据分析人员,解决重复查找替换和内容追加带来的耗时问题,尤其适合项目代码重构、文章批量添加版权声明、日志整理等场景。资源…

2026/10/11 4:50:24 阅读更多 →
用Coze和Dify智能体生成接口测试用例并自动执行

用Coze和Dify智能体生成接口测试用例并自动执行

讲个真实的背景:我手头一个项目有六十多个接口,光接口文档就一百多页,每次版本迭代都要重新整理测试用例。起初我靠手工一条条写,一个登录模块能憋出四五十条用例,写到最后人已经麻木了。后来我试着用Coze和Dify各搭了…

2026/10/11 4:50:24 阅读更多 →
单片机基础知识 -- 重映射功能Remap

单片机基础知识 -- 重映射功能Remap

文章目录一、重映射的核心本质二、为什么需要引脚重映射?(工程痛点)三、重映射的分类(以STM32为例,通用多数单片机)四、重映射的实现步骤(裸机开发通用流程,以STM32 USART1为例&…

2026/10/11 4:50:24 阅读更多 →
AI应用架构设计:图解动态能力组合与落地避坑指南

AI应用架构设计:图解动态能力组合与落地避坑指南

1. 这不是画PPT,是给AI系统搭骨架“图解AI应用架构设计”这六个字,乍看像培训课件标题,实则藏着当前一线AI落地最常踩的深坑——很多人花三个月调出一个98%准确率的模型,上线后却卡在日均处理200条请求就超时;也有人把…

2026/10/11 4:49:23 阅读更多 →

日新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 5:23:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 21:32:20 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 10:38:42 阅读更多 →