STM32 基础系列教程 30 - 文件系统
前言
学习stm32中FATFS 文件系统的基础使用,学会文件的打开及读写删除等基本操作,理解文件系统基本概念。
示例详解
基于硬件平台: STM32F10C8T6最小系统板, MCU 的型号是 STM32F103c8t6, 使用stm32cubemx 工具自动产生的配置工程,使用KEIL5编译代码。
本示例所用的最小系统板原理图:
- 关于CUBEMX工具及KEIL工具的操作将不再细讲,如果还有不熟悉的可以查看之前的教程文档。下面直接介绍工程配置:
- 系统时钟树
- 文件系统配置(使能文件系统,参数保持默认也可,实际应用可能适当修改参数,参数的作用也很好理解)
- 串口引脚配置(开启串口1,用于输出调试信息)
- RTC配置(用于为文件系统提供时间,非必需)
- 中断配置(保持默认即可)
- 设置Stack大小
- 调整模块初始化顺序
- 工程代码
- 在工程中将事先准备好的flash.c及flash.h文件加入工程,并分别在main.c, user_diskio.c及fatfs.c中加入如下图所示代码:
- 上面的代码首先是完成文件系统的初值化,并创建并打开一个文件,往文件中写入指定字符串后关闭文件,并再次打开文件并读取文件内容,若读回的文件内容与写入一致,即可认为文件系统操作及文件的读写操作是成功的。将上面工程编译,烧录到开发板,用串口工具查看串口1的程序操作及文件内容:
OK,本期实验完成!下期见!同时如果大家有什么疑问或是有想了解的其它内容,也欢迎大家留言!!最后喜欢这个公众号的同学们记得加关注了,每天都会有技术干货推出!!
文中资料及源码下载,在公众号里给十三发消息:
下载|STM32基础系列教程30
关注十三公众号
STM32 基础系列教程 30 - 文件系统相关推荐
- STM32 基础系列教程 42 - SDMMC+Fatfs
前言 本节我们将基于42讲 "STM32 基础系列教程 41 - SDMMC" 的基础来实现基于SD卡文件系统的文件操作. 示例详解 基于硬件平台: 正点源子的stm32f4 探索 ...
- STM32 基础系列教程 40 - Lwip_mqtt
前言 MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的"轻量级&qu ...
- STM32 基础系列教程 39 - Lwip_tftp
前言 文件传输协议(英文:File Transfer Protocol,缩写:FTP)是用于在网络上进行文件传输的一套标准协议,使用客户/服务器模式.它属于网络传输协议的应用层.文件传送(file t ...
- STM32 基础系列教程 50 – MbedTls
前言 mbed TLS(以前称为PolarSSL)是TLS和SSL协议的实现,并且需要相应的加密算法和支持代码.这是双重许可与Apache许可证 2.0版(与GPLv2许可也可).网站上指出,mbed ...
- STM32 基础系列教程 49 – Jansson
前言 JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式.它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全 ...
- STM32 基础系列教程 48 – CJSON
前言 JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式.它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全 ...
- STM32 基础系列教程 47 - MD5
前言 MD5消息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信 ...
- STM32 基础系列教程 46 – RNG
前言 随机数发生器(RNG)是一个以连续模拟噪声为基础的随机数发生器,在主机读数时提供一个 32 位的随机数.STM32F407自带RNG ,本节将给大演示STM32F4系列MCU中的RNG的使用.用 ...
- STM32 基础系列教程 45 - FSMC_LCD_Touch
前言 上一节我们完成了用 STM32F4的 FSMC接口来控制 TFTLCD的显示的操作,其实正点原子的探索者F4开发板带的屏幕支持触摸操作,笔者用的是4.3寸的电容触摸屏,本节我们继续实验,来完成基 ...
最新文章
- Yours的Ryan X Charles谈BCH驱动社交媒体
- 春运又在路上了,火车购票、出行指南了解一下!
- 跟踪DB2的sql语句
- Windows10,Maven配置 电脑重启失效
- Unity中的值传递与引用传递
- 【Python】处理FutureWarning: Pass threshold=18 as keyword args.
- ES6——变量的解构赋值
- MySQL体系结构图详解
- 请教:使用或移植过xprivacy的请进
- wp8.1 java_UWP tips (与wp8.1的不同)
- Hazelcast IMDG参考中文版手册-第二章-入门
- mysql 五舍六入_四舍六入五成双(适用于MYSQL)(最大支持小数点第9位)
- 微信小程序 canvas 分享图片 生成图片
- 少儿Python编程6-计算机数据结构和算法
- canvas——绘制图片——动图制作
- 云和恩墨亮相CNCC 2020,zCloud打造国产时代数据库管理中台
- JAVA --数字与字符串(四)格式化输出
- 麦芽糖醇(CAS 585-88-6)的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
- 体验移动100M宽带
- 公园智慧路灯:上海曹杨公园智慧灯杆项目案例分享
热门文章
- 多项式输出(NOIP2009 普及组第一题)
- 从MVC到前后端分离
- jstl fn:replace替换换行符
- CentOS 7下Python环境设置 - 1
- Android AsyncTask
- CSS+js弹出居中的背景半透明div层
- ASP.NETSpring.NETNHibernate最佳实践(三)——第2章环境准备
- 奇怪,不能上GOOGLE了...你们也是这样吗?
- UA OPTI512R 傅立叶光学导论15 2-D Fourier变换与Hankel变换
- UA MATH636 信息论2 数据压缩