前言

学习stm32中FATFS 文件系统的基础使用,学会文件的打开及读写删除等基本操作,理解文件系统基本概念。

示例详解

基于硬件平台: STM32F10C8T6最小系统板, MCU 的型号是 STM32F103c8t6, 使用stm32cubemx 工具自动产生的配置工程,使用KEIL5编译代码。

本示例所用的最小系统板原理图:

  1. 关于CUBEMX工具及KEIL工具的操作将不再细讲,如果还有不熟悉的可以查看之前的教程文档。下面直接介绍工程配置:
  1. 系统时钟树

  1. 文件系统配置(使能文件系统,参数保持默认也可,实际应用可能适当修改参数,参数的作用也很好理解)

  1. 串口引脚配置(开启串口1,用于输出调试信息)

  1. RTC配置(用于为文件系统提供时间,非必需)

  1. 中断配置(保持默认即可)
  2. 设置Stack大小

  1. 调整模块初始化顺序

  1. 工程代码

    1. 在工程中将事先准备好的flash.c及flash.h文件加入工程,并分别在main.c, user_diskio.c及fatfs.c中加入如下图所示代码:

  1. 上面的代码首先是完成文件系统的初值化,并创建并打开一个文件,往文件中写入指定字符串后关闭文件,并再次打开文件并读取文件内容,若读回的文件内容与写入一致,即可认为文件系统操作及文件的读写操作是成功的。将上面工程编译,烧录到开发板,用串口工具查看串口1的程序操作及文件内容:

OK,本期实验完成!下期见!同时如果大家有什么疑问或是有想了解的其它内容,也欢迎大家留言!!最后喜欢这个公众号的同学们记得加关注了,每天都会有技术干货推出!!

文中资料及源码下载,在公众号里给十三发消息:

下载|STM32基础系列教程30

关注十三公众号

STM32 基础系列教程 30 - 文件系统相关推荐

  1. STM32 基础系列教程 42 - SDMMC+Fatfs

    前言 本节我们将基于42讲 "STM32 基础系列教程 41 - SDMMC" 的基础来实现基于SD卡文件系统的文件操作. 示例详解 基于硬件平台: 正点源子的stm32f4 探索 ...

  2. STM32 基础系列教程 40 - Lwip_mqtt

    前言 MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的"轻量级&qu ...

  3. STM32 基础系列教程 39 - Lwip_tftp

    前言 文件传输协议(英文:File Transfer Protocol,缩写:FTP)是用于在网络上进行文件传输的一套标准协议,使用客户/服务器模式.它属于网络传输协议的应用层.文件传送(file t ...

  4. STM32 基础系列教程 50 – MbedTls

    前言 mbed TLS(以前称为PolarSSL)是TLS和SSL协议的实现,并且需要相应的加密算法和支持代码.这是双重许可与Apache许可证 2.0版(与GPLv2许可也可).网站上指出,mbed ...

  5. STM32 基础系列教程 49 – Jansson

    前言 JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式.它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全 ...

  6. STM32 基础系列教程 48 – CJSON

    前言 JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式.它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全 ...

  7. STM32 基础系列教程 47 - MD5

    前言 MD5消息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信 ...

  8. STM32 基础系列教程 46 – RNG

    前言 随机数发生器(RNG)是一个以连续模拟噪声为基础的随机数发生器,在主机读数时提供一个 32 位的随机数.STM32F407自带RNG ,本节将给大演示STM32F4系列MCU中的RNG的使用.用 ...

  9. STM32 基础系列教程 45 - FSMC_LCD_Touch

    前言 上一节我们完成了用 STM32F4的 FSMC接口来控制 TFTLCD的显示的操作,其实正点原子的探索者F4开发板带的屏幕支持触摸操作,笔者用的是4.3寸的电容触摸屏,本节我们继续实验,来完成基 ...

最新文章

  1. Yours的Ryan X Charles谈BCH驱动社交媒体
  2. 春运又在路上了,火车购票、出行指南了解一下!
  3. 跟踪DB2的sql语句
  4. Windows10,Maven配置 电脑重启失效
  5. Unity中的值传递与引用传递
  6. 【Python】处理FutureWarning: Pass threshold=18 as keyword args.
  7. ES6——变量的解构赋值
  8. MySQL体系结构图详解
  9. 请教:使用或移植过xprivacy的请进
  10. wp8.1 java_UWP tips (与wp8.1的不同)
  11. Hazelcast IMDG参考中文版手册-第二章-入门
  12. mysql 五舍六入_四舍六入五成双(适用于MYSQL)(最大支持小数点第9位)
  13. 微信小程序 canvas 分享图片 生成图片
  14. 少儿Python编程6-计算机数据结构和算法
  15. canvas——绘制图片——动图制作
  16. 云和恩墨亮相CNCC 2020,zCloud打造国产时代数据库管理中台
  17. JAVA --数字与字符串(四)格式化输出
  18. 麦芽糖醇(CAS 585-88-6)的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  19. 体验移动100M宽带
  20. 公园智慧路灯:上海曹杨公园智慧灯杆项目案例分享

热门文章

  1. 多项式输出(NOIP2009 普及组第一题)
  2. 从MVC到前后端分离
  3. jstl fn:replace替换换行符
  4. CentOS 7下Python环境设置 - 1
  5. Android AsyncTask
  6. CSS+js弹出居中的背景半透明div层
  7. ASP.NETSpring.NETNHibernate最佳实践(三)——第2章环境准备
  8. 奇怪,不能上GOOGLE了...你们也是这样吗?
  9. UA OPTI512R 傅立叶光学导论15 2-D Fourier变换与Hankel变换
  10. UA MATH636 信息论2 数据压缩