振南技术干货集:znFAT 硬刚日本的 FATFS 历险记(5)

news2024/9/30 15:31:49

注解目录

1、znFAT 的起源

1.1 源于论坛

(那是一个论坛文化兴盛的年代。网友 DIY SDMP3 播放器激起了我的兴趣。)

1.2 硬盘 MP3 推了我一把

(“坤哥”的硬盘 MP3 播放器,让我深陷 FAT 文件系统不能自拔。)

1.3 我的导师-- 顾国昌教授

(哈军工时期的老教授,德高望重的人生导师。)

1.4 我的母校-- 哈工程

(隐藏牛校哈工程,网络名嘴张雪峰所言非虚。振南给你讲讲母校历史:哈军工、

工程学院、哈船院、哈工程。)

1.5 那场严重超时的答辩会

(20 分钟的答辩超时 1 小时,老师表示赞叹。现场承诺要把文件系统写成书。)

1.6 时隔多年的谢师会

(承诺必须兑现,5 年之后的谢师会,我擎书谢师。不要轻易作出承诺,除非你真

得能作到!)

2、高手如云 认清对手

2.1 国外 FAT 方案简介

1 )FATFS

2 )EFSL

3 )UCFS

4 )TFFS

5 )DOSFS

(列举那些主流 FAT 文件系统方案,并进行详细介绍。)

2.2 国内 FAT 方案简介

1 )ZLG/FS

2 )沁恒 FAT

(国内尚无成型开源的 FAT 文件系统方案。但是我们要支持国货。)

3、硬刚高手 挑战自己

3.1 与高手竞速

3.2 挑战自己

(这一节我写了一个月。环比各大知名方案,看看到底谁更快!最终,挑战了自我。)

4、znFAT 精彩应用大赏

4.1 振南的精彩实验

4.1.1 SD 卡 卡 WAV 音频播放器

4.1.2 SD 卡电子滚动屏

4.1.3 SD 卡 卡 MP3 播放器

4.1.4 AT89S51 离线下载器

4.1.5 数据采集导入 EXCEL

4.1.6 串口文件窃取器

4.1.7 录音笔于 (基于 VS1003B) )

4.1.8 文件无线传输实验

4.1.9 嵌入式脚本程序解释器

4.1.10 绘图板实验(基于 STM32F4 ,屏幕截图存为 BMP 图片)

4.1.11 MEMS 声音传感器“ 硅麦” 录音实验

(znFAT 的最大亮点在于各种精彩的应用,希望振南的这些实验可以让你眼前一亮。)

4.2 精彩的第三方项目应用

4.2.1 仿 仿 Metro UI 系统应用实验

4.2.2 通过 U 盘对产品进行升级

4.2.3 嵌入式网页服务器

4.2.4 STM32+LD3320 作声控音频播放器

4.2.5 BMP 图片浏览

4.2.6 VGA 显示 SD 卡中的图片(基于 FPGA) )

4.2.7 汉字电子书(基于 STM8) )

4.2.8 文本语音合成实验(TTS ,基于 NUC120) )

4.2.9 《跳跃小猫》动画播放(基于 FPGA NIOSII)

4

znFAT 精彩应用大赏

4.1 振南的精彩实验


1.SD 卡 WAV 音频播放器

所需主要硬件:

STC15L2K60S2(主 CPU 芯片,位于ZN-X开发板基板)

TLC5615(12 位 DAC,位于基础实验模块)

SD/SDHC 卡(使用 SD 卡模块与基板接驳)

实验功能描述:在此实验中,STC51 单片机通过 nFAT 打开 SD 卡根目录下名为 est.wav的文件并读取其数据,定时将数据写入 TLC5615 得到相应的电压(WAV 文件选用 PCM编码的 8位 mono 格式)。拟合出来的声音信号经后级音频电路隔直滤波处理,最终产生较为理想的音频效果,如图 18.7 所示。


图 18.7 SD 卡 WAV 音频播放器实验示意图

实际硬件平台如图 18.8 所示


图 18.8 SD 卡 WAV 音频播放器实验硬件平台

2.SD 卡电子滚动屏

所需主要硬件:STC15L2K60S2

16X16 点阵(由 4个8X8 点阵构成,位于基础实验模块)

SD/SDHC 卡

实验功能描述;将要进行滚动显示的 TXT 文本文件与汉字库文件(HZK16)放入SD卡根目录下。单片机通过 znFAT 读取文本文件中的字符编码,并从 HZK16 中获取其对应的字模数据。最终送到 16X16 点阵进行滚动显示(16X16 点阵采用 片74HC595 两两级联,分别控制其行与列。单片机通过定时动态扫描的驱动方式实现滚动显示的效果。)实验示意如图 18.9 所示。


图 18.9 SD 卡电子滚动屏实验示意图

实际硬件平台如图 18.10 所示。


图 18.10 SD 卡电子滚动屏实验硬件平台

3.SD卡MP3播放器

所需主要硬件:STC15L2K60S2

MP3 模块(采用 VS1003B MP3 音频解码芯片)

SD/SDHC 卡

实验功能描述:STC51单片机通过 znFAT 读取 SD 卡中的 MP3 文件将其数据写入MP3 模块中进行解码播放。使用两个按键实现上一首与下一首的切换。实验示意如图 18.11所示

实际硬件平台如图 18.12 所示。


图 18.11 SD 卡 MP3 播放器实验示意图


图 18.12 SD 卡 MP3 播放器实验硬件平台

4.AT89S51离线下载器

所需主要硬件:STC15L2K60S2

AT89S51(由 Atmel 研制的 51 核单片机,可支持串行 ISP 程序下载)

SD/SDHC 卡

实验功能描述:所谓“离线下载器”是指不需要计算机而完成对单片机芯片的程序烧录此实验读取 SD 卡中的烧录文件,比如 bin 或 hex,将其中的程序代码通过 AT89S51 的ISP 接口(可使用 STC51 的硬件 SPI,或者采用IO 模拟时序)写它的 FlashROM 中并让程序开始运行。实验示意如图 18.13 所示。


图 18.13 SD 卡 MP3 播放器实验示意图

实际硬件平台如图 18.14 所示。


图 18.14 AT89S51 离线下载实验硬件实验平台

5.数据采集导入 EXCEL

所需主要硬件:ATMEGA128(Amtel 的 8 位AVR 单片机,位于ZN-X开发板基板)

PCF8563_DS18B20(基础资源模块)

SD / SDHC 卡(使用 SD 卡模块与基板接驳)

实验功能描述:在这个实验中,我们通过 AVR 单片机采集实时钟芯片 PCF8563 的年月日时分秒的时间信息、温度传感器 DS18B20 的温度数据以及一路模拟量信号(由 AVR 单片机的片内 ADC 直接进行采集)。每秒钟采集一次数据,我们在 AVR 单片机中对获取的这三种数据进行处理,转换为 EXCEL 软件可以识别的表格数据格式(CSV 格式)将其存人SD卡根目录下的znmcu.csv 文件中。实验示意如图1815 所示。


图 18.15 数据采集导入 EXCEL 实验示意图

实验硬件平台如图 18.16 所示。

实验效果如图 18.17~18.18 所示。

振南评注:我做这一实验,主要是因为有很多人问我:“能不能把数据存成 XLS 文件?这样就可以使用 EXCEL对数据进行一些处理了,比如作曲线图等”Office 中的 EXCEL确实有很强的数据统计和处理功能,它的表格文件格式通常是 XLS 文件。但是如果我们想把数据直接存成 XLS 的形式却是有些困难的,因为 XLS 文件的结构非常庞杂。针对这一问题,曾经有很多人产生过这个的疑问;“难道 nFAT 没有把数据写成XLS 格式的功能吗?它不能创建xxx.xls 文件吗?”振南要说:其实 nFAT 作为一个嵌人式 FAT32 文件系统方案只负责数据


图 18.16 数据采集导入 EXCEL 实验硬件平台


图 18.17 数据采集存为 CSV 文件直接以表格形式导入到 EXCEL 软件中

的读/写,它根本不管这些数据是什么意义,只知道数据是一堆字节而已。一个特定格式的文件,它的数据必定遵循一定的结构规范。它在文件系统的层面上对数据进行了更为具体的定义。简言之,文件格式是文件系统应用层面上的东西,它的实现取决于使用者以何种结构进行数据的存储。要让 EXCEL 能够识别记录在文件中的数据,不仅仅是创建一个扩展名为 XLS的文件就可以的,更重要的是我们要知道数据的具体结构和组织方式。如果你还是没听懂,那我问你:“难道你把一个扩展名为 MP4 的电影文件改成 MP3 就能听音乐了吗?”不知道你有没有留意过EXCEL还支持一种叫作 CSV 的文件格式,即号分隔格式。它使用一种非常简单的表达方法来描述数据的表格结构(在各列数据中间用空格分开即可)。具体的文件格式如图 18.19 所示。


图 18.18 一路模拟量与温度在 EXCEL 中生成的曲线图


图 18.19 CSV 文件的数据格式

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1261594.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

VQ一下Key,Transformer的复杂度就变成线性了

©PaperWeekly 原创 作者 | 苏剑林 单位 | 月之暗面 研究方向 | NLP、神经网络 Efficient Transformer,泛指一切致力于降低 Transformer 的二次复杂度的工作,开始特指针对 Attention 的改进,后来更一般的思路,如傅立叶变换、…

Linux文件系统以及动静态库

目录 一、系统 I/O 1.1 接口介绍 1.2 系统调用和库函数 1.3 文件描述符 1.4 重定向 二、理解文件系统 2.1 inode 2.2 硬链接 2.3 软连接 三、动静态库 3.1 初识动静态库 3.2 静态库的打包与使用 3.2.1 打包 3.2.2 使用 3.3 动态库的打包与使用 3.3.1 打包 3.3…

四川劳动保障杂志社四川劳动保障编辑部四川劳动保障杂志2023年第10期目录

主题报道 四川抢抓“金九银十”招聘季多措并举稳就业促就业 举措频“上新” 金秋送岗忙 张玉芳; 2-5 法眼《四川劳动保障》投稿:cnqikantg126.com 筑牢长期护理保险基金安全防线 李科仲;赖晓薇; 6-7 调研 提升职业技能培训工作的举措 寇爵; 8-9 城乡…

2023.11.26 关于 Spring Boot 单元测试

目录 单元测试 优势 单元测试的使用 具体步骤 实现不污染数据库 阅读下面文章之前 建议点击下方链接了解 MyBatis 的创建与使用 MyBatis 的配置与使用 单元测试 单元测试 指对软件中的最小可测试单元进行检查和验证的过程单元测试 由开发人员在编码阶段完成,…

销售人员应该具备哪些良好心态和素养

销售人员应该具备哪些良好心态和素养 作为市场的前线战士,销售人员的心态与素养对于成功销售至关重要。以下所列举的,正是销售人员不可或缺的十种良好心态与专业素养,它们将帮助你更好地应对销售挑战,提升业绩。 1. 积极乐观的态…

11.盛最多的水的容器

一、题目 给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 题目难度:中等 示例&a…

【备忘录】快速回忆ElasticSearch的CRUD

导引——第一条ElasticSearch语句 测试分词器 POST /_analyze {"text":"黑马程序员学习java太棒了","analyzer": "ik_smart" }概念 语法规则 HTTP_METHOD /index/_action/IDHTTP_METHOD 是 HTTP 请求的方法,常见的包括…

Flask 运用Xterm实现交互终端

Xterm是一个基于X Window System的终端仿真器(Terminal Emulator)。Xterm最初由MIT开发,它允许用户在X Window环境下运行文本终端程序。Xterm提供了一个图形界面终端,使用户能够在图形桌面环境中运行命令行程序。而xterm.js是一个…

物理世界中的等距3D对抗样本

论文题目:Isometric 3D Adversarial Examples in the Physical World 会议:NIPS 2022 点云: 点云——表达目标空间分布和目标表面特性的海量点集合,点包含xyz坐标信息 能够包含颜色等其他信息 使用顶点、边和面的数据表征的三维…

【操作宝典】SQL巨擘:掌握SQL Server Management的终极秘籍!

目录 ⛳️【SQL Server Management】 ⛳️1. 启动登录 ⛳️2. 忘记密码 ⛳️3. 操作数据库和表 3.1 新建数据库text 3.2 新建表 3.3 编辑表 3.4 编写脚本 ⛳️【SQL Server Management】 ⛳️1. 启动登录 需要开启服务 ⛳️2. 忘记密码 登录windows--> 安全性 -->…

基于Java SSM框架+Vue留学生交流互动论坛网站项目【项目源码+论文说明】

基于java的SSM框架Vue实现学生交流互动论坛网站演示 摘要 21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐渐被人们所…

四川开启智能巡河形式,无人机水利行业应用再创新

在四川省某区域,复亚智能无人机系统以其独特的机场网格化部署得到成功应用,覆盖了该区域内多条市级、省级河流,成为水利行业的新亮点。这一先进系统以无人机水利行业应用为核心,通过网格化和信息化手段,实现了对水域环…

Java核心知识点整理大全19-笔记

目录 14.1.5.2. MemStore 刷盘 全局内存控制 MemStore 达到上限 RegionServer 的 Hlog 数量达到上限 手工触发 关闭 RegionServer 触发 Region 使用 HLOG 恢复完数据后触发 14.1.6.HBase vs Cassandra 15. MongoDB 15.1.1. 概念 15.1.2. 特点 16. Cassandra 16.1.1…

activate jrebel JRebel激活过程

1.下载反向代理 地址:https://pan.baidu.com/s/1wklvDtyrSBXE4I6lKCxXBg?pwdidos 下载完后双击运行 2.在idea中如下步骤点击:File ——> Setting... ——> JRebel ——> Activate now 填入Team URL 1.http://127.0.0.1:8888/uuid //这个…

用于图像分类任务的经典神经网络综述

🎀个人主页: https://zhangxiaoshu.blog.csdn.net 📢欢迎大家:关注🔍点赞👍评论📝收藏⭐️,如有错误敬请指正! 💕未来很长,值得我们全力奔赴更美好的生活&…

电脑如何录音?适合初学者的详细教程

“电脑怎么录音呀?参加了一个学校举办的短视频大赛,视频拍摄都很顺利,音乐却出了问题,朋友说可以用电脑录制一段音乐应付一下,可是我不会操作,有哪位大佬教教我!” 声音是一种强大的媒介&#…

回归预测 | MATLAB实现SMA+WOA+BOA-LSSVM基于黏菌算法+鲸鱼算法+蝴蝶算法优化LSSVM回归预测

回归预测 | MATLAB实现SMAWOABOA-LSSVM基于黏菌算法鲸鱼算法蝴蝶算法优化LSSVM回归预测 目录 回归预测 | MATLAB实现SMAWOABOA-LSSVM基于黏菌算法鲸鱼算法蝴蝶算法优化LSSVM回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 MATLAB实现SMAWOABOA-LSSVM基于黏菌算法…

Ubuntu18.04磁盘取证-中难度篇

涉及的镜像文件: sdb.vhd uac.tar ubuntu.20211208.mem 需要利用的工具: volatility3 volatility2.6.1 FTK/Autopsy Strings 题干 容器是一个Ubuntu Linux 蜜罐,用来观察利用 CVE-2021-41773 的漏洞攻击者想要做什么。 您将看到一个 cr…

高仿IT之家微信小程序(附精选源码32套,涵盖商城团购等)

项目预览 主要包含主页资讯,圈子俩大模块 主页 资讯详情 圈子 相关代码 网络请求 import wx from wx import Fly from flyioconst request new Fly()request.interceptors.request.use((request) > {wx.showNavigationBarLoading()return request })requ…

Linux - 动静态库(下篇)

前言 在上篇博客当中,对静态库是什么,怎么使用,简单实现自己的静态库,这些做了描述,具体请看上篇博客: 本篇博客将会对 动态库是什么,怎么使用,简单实现自己的动态库&#xff0c…