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

注解目录

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)

znFAT 精彩应用大赏

4.2 精彩的第三方项目应用


1.仿 Metro UI 系统应用实验

所需主要硬件;K60DN256VLL10(飞思卡尔研制的 Cortex- M4 内核的单片机芯片)K60 实验板、TFT 液晶、RTC 芯片等,SD/SDHC 卡

作者:杨熙(网友,就职于 NXP 半导体公司)

实验功能描述:此实验以 K60 实验板为硬件平台,使用CGUI+uCOS+zFAT 在 TFT液晶上实现了仿 metroUl的界面效果。可对 SD 卡中的图像与文本文件进行浏览。实验效果如图 18.48 所示。


图 18.48 仿 Metro UI 系统实验效果图

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


图 18.49 GUI 实验硬件平台

2.通过 U 盘对产品进行升级

所需主要硬件:LPC1788 即相关硬件与接口(硬件平台为网友在研的产品)

作者:邵建明、刘磊

实验功能描述:插上 U 盘之后,通过 nFAT 扫描  盘中的文件,如有升级系统配置文件则升级;如没有,再扫描是否有 *.MP3,有则播放音乐。硬件平台实际效果如图 18.50 所示。


图 18.50 某产品中通过 znFAT+U 盘完成升级与音频播放

3.嵌入式网页服务器

所需主要硬件: ATMEGA128 、ENC28J60 等。

作者:陈永鹏(网友)

实验功能描述;此实验中使用 ATMEGA128 为主 CPU,ENC28J60 为以太网控制器,移植了UIP 作为其 TCP/IP 协议栈。使用SD 卡存储 HTML 网页文件,通过超文本传输协议来进行网页文件数据的传送,最终实现服务器的功能。实验硬件如图 18.51 所示。


图 18.51 嵌入式网页服务器硬件平台

4.STM32+LD3320 作声控音频播放器

所需主要硬件:STM32F103RBT6、LD3320(一种 MP3 播放及语音识别芯片)麦克风SD卡等。

作者:钱晓平(网友)

实验功能描述:首先在 LD3320 芯片中加载要别的拼音串,比如 kai deng(开灯)、guanbi xi tong(关闭系统)等,然后启动识别。人说出汉语“开灯”,LD3320 对声音进行识别并产生相应的动作,完成之后进行语音提示,即使用 nFAT 读取存储在 SD 卡中相应的 MP3 文件数据送至 LD3320 进行解码播放。实验硬件如图 18.52 所示。


图 18.52 声控音频播放器实验硬件平台

5.BMP 图片浏览

所需主要硬件:PIC18F66K22(编译器为 MCC18)、SD 卡、TFT 液晶等。

作者:未知

实验功能描述:此实验中使用 nFAT 依次读取 SD 卡中所有的 BMP 文件(24 位 BMP)解析参数,读取其像素数据送到 TFT 液晶显示。实验平台与效果如图 18.53~18.54 所示。


图 18.53 PIC18F66K22 作 BMP 图片显示实验硬件平台


图 18.54 PIC18F66K22 作 BMP 图片显示实验效果

6.VGA 显示 SD 卡中的图片(基于 FPGA )*

这几天搞定了 SD 卡之后,又接着看文件系统。说实话想短时间内把整个 FAT32 文件系统都搞定,而且很稳定很健壮,是不太容易的。有现成的 nFAT 可以移植振南兄可是花了不少心思在这上面。我这里没有直接移植他的文件系统,而是参考 nFAT 自己写了个很简单的只能读取文件的“所谓文件系统”。因为此实验只涉及图片文件的读取,所以我只做了读取的部分,完全与 FAT32 兼容。

网上能搜到的关于数码相框的方案,大多是基于液晶屏显示的,我手里没有现成的液晶屏,VGA 倒是有两个。大家选择液晶屏而不选 VGA 的原因,我后来才知道:因为 VGA 显示需要的显存比较大,一般至少 2 MB,这么大的显存是需要银子的。DE2 上是有 2 MB的SRAM 的,而 DEO 上除了 SDRAM 和 FLASH之外什么都没有。这板子资源少。没有办法只能把图片的尺寸减小到能放在片内 RAM 里才行。DEO 用的是 EP3C16F484C6 的 FPGA(属Altera Cyclonell系列),片上只有 56 个 M9KRAM,56 这个数字很鸡,于 32 和64之间,所以我就建立了一个32 KB 的双口 RAM。由 CPU 读取 SD 卡的内容,写入 RAM,然后VGA 以50 MHz的时钟读取并显示,VGA 分辨率为 800X600@72 Hz。

先找个测试用的图片,不要太大,大约在 160X120 左右。然后用Image2Led 转化成.bin格式,宽度为 97,高度为 150(这个奇怪的图像尺寸是为了将就可怜的 32 KB 显存)如图 18.55 所示。

然后将由 Image2Lcd 生成的.bin 文件复制到 SD 卡中随后就可以开始实验了。

实验硬件平台与实际效果如图 18.56 和 18.57 所示。

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

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

相关文章

【数据结构】八大排序(二)

目录 前言: 冒泡排序 冒泡排序代码实现 冒泡排序特性总结 快速排序 单趟排序hoare版本 单趟排序挖坑法 单趟排序快慢指针法 快速排序整体概览 快排的优化 三数取中法选key 小区间优化 前言: 上文介绍了直接插入排序,希尔排序&…

vue3怎么提升效率的?为什么vue3比vue2快?效率提升主要在哪些方面?

官方文档中说vue3在 客户端渲染效率比vue2提升了1.3~2倍, SSR渲染效率比vue2提升了2~3倍,那么究竟是怎么提升的呢? 一、静态提升 在 vue3项目中的package.json文件中,可以看到这个 vue/compiler-sfc,它是用来解析(.v…

【Java Spring】SpringBoot常用插件

文章目录 1、Lombok1.1 IDEA社区版安装Lombok1.2 IDEA专业版安装Lombok1.3 Lombok的基本使用 2、EditStarters2.1 IDEA安装EditStarters2.2 EditStarters基本使用方法 1、Lombok 是简化Java开发的一个必要工具,lombok的原理是编译过程中将lombok的注解给去掉并翻译…

电力感知边缘计算技术网关产品设计方案-硬件方案

网关硬件架构设计图: 1.配置方案 配置差异 A类网关 B类网关 CPU

写一个宏,交换整数二进制位的奇数位和偶数位,并打印这个新的数

我们已经学过了C语言的宏&#xff0c;我们今天应用宏来交换一个整数的二进制的奇数位和偶数位&#xff0c;并得到这个被交换过的数&#xff0c;我们开始吧&#xff01; 1.问题分析 解题方法&#xff1a;& 和<< 和>>操作符 问题解析&#xff1a;我们这里假设一个…

这才是BI大数据分析工具的正确打开方式!

这两年经济下行给各行各业造成不小的发展困扰&#xff0c;为此企业积极自救&#xff0c;希望通过数字化降本增效&#xff0c;提高业绩水平。BI大数据分析工具就是企业数字化转型中常用到的一种商业智能BI工具&#xff0c;主要作用是缩短数据分析时间&#xff0c;提升企业数据分…

解析直播第三方美颜SDK:技术原理与应用

时下&#xff0c;直播平台和主播们纷纷引入美颜技术&#xff0c;以提升视觉效果和用户体验。而在众多美颜技术中&#xff0c;直播第三方美颜SDK成为许多开发者和平台的首选&#xff0c;因其灵活性和高效性而备受推崇。 一、技术原理&#xff1a;美颜算法的精髓 第三方美颜SDK…

2023年【A特种设备相关管理(锅炉压力容器压力管道)】新版试题及A特种设备相关管理(锅炉压力容器压力管道)模拟考试题库

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2023年【A特种设备相关管理&#xff08;锅炉压力容器压力管道&#xff09;】新版试题及A特种设备相关管理&#xff08;锅炉压力容器压力管道&#xff09;模拟考试题库&#xff0c;包含A特种设备相关管理&#xff08;锅…

基于Python+OpenCV+dlib+Tensorflow深度学习的人脸表情识别系统

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 人脸表情识别是一种重要的计算机视觉任务&#xff0c;它涉及到对人脸图像中的表情进行分类和理解。在这个系统中&am…

vue使用echarts中国地图

需求&#xff1a;Vue3 vite TS 项目内使用 Echarts 5 绘制中国地图。鼠标悬浮省份上面显示指定的数据&#xff0c;地图支持缩放和拖拽的功能&#xff0c;页面放大缩小支持自适应&#xff0c;window.addEventListener(‘resize’, resize); 添加防抖动函数debounce。 一、安装…

零基础学Python第三天||写一个简单的程序

通过对四则运算的学习&#xff0c;已经初步接触了Python中内容&#xff0c;如果看官是零基础的学习者&#xff0c;可能有点迷惑了。难道敲几个命令&#xff0c;然后看到结果&#xff0c;就算编程了&#xff1f;这也不是那些能够自动运行的程序呀&#xff1f; 的确。到目前为止…

算法基础二

回文数 给你一个整数 x &#xff0c;如果 x 是一个回文整数&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。回文数是指正序&#xff08;从左向右&#xff09;和倒序&#xff08;从右向左&#xff09;读都是一样的整数。 示例 1&#xff1a; 输入&#xff1…

【FGPA】Verilog:JK 触发器 | D 触发器 | T 触发器 | D 触发器的实现

0x00 JK 触发器 JK 触发器是 RS 触发器和 T 触发器的组合&#xff0c;有两个输入端 J 和 K&#xff0c;如果两个输入端都等于 1&#xff0c;则将当前值反转。 行为表 状态图 Timing Diagram Circuit JK 触发器的设计目的是防止 RS 触发器在输入 S 和 R 均等于 …

使用Java给钉钉群发消息

目录 目录 1.安装依赖 2.编写工具类 3.测试 安全设置 Webhook 代码编写 运行测试 4.艾特全部功能 1.安装依赖 <dependency><groupId>com.taobao.dingding</groupId><artifactId>taobao-sdk</artifactId><version>1.0.0</versio…

E云管家开发个人微信号批量修改好友备注

简要描述&#xff1a; 修改好友备注 请求URL&#xff1a; http://域名地址/modifyRemark 请求方式&#xff1a; POST 请求头Headers&#xff1a; Content-Type&#xff1a;application/jsonAuthorization&#xff1a;login接口返回 参数&#xff1a; 参数名必选类型说…

扫地机器人市场持续火爆,景联文科技数据采集标注方案助力扫地机器人智能化升级

随着消费者对智能家居和清洁卫生的需求增加&#xff0c;扫地机器人市场规模不断扩大。市场竞争也日益激烈&#xff0c;各品牌都在努力提升产品性能和服务质量&#xff0c;以获取更大的市场份额。 IDC的统计数据显示&#xff0c;今年双十一前两周&#xff08;2023年10月23日至20…

Python入门05 print函数

目录 1 Python中的内置函数2 print函数介绍3 print函数的用途总结 1 Python中的内置函数 Python中内置了很多函数&#xff0c;我们可以直接调用&#xff0c;以下是一些常见的函数&#xff1a; abs()&#xff1a;返回一个数的绝对值。all()&#xff1a;判断一个可迭代对象中的…

Jmeter和Testlink自动化测试框架研究与实施

摘 要 目前基于Jmeter的接口自动化测试框架&#xff0c;大多只实现脚本维护和自动调度&#xff0c;无法与Testlink进行互通&#xff0c;实现测试方案与自动化实施流程连接&#xff0c;本文基于Testlink、Jmeter、Jenkins实现&#xff1a;通过Testlink统一维护接口自动化测试用…

基于python的IOS自动化测试小技巧

文章目录 一、Xpath 的使用1.1 使用Xpath读取固定位置的元素的内容一、Xpath 的使用 在执行IOS APP UI自动化测试时,需要使用到元素定位,我们使用WEditor进行元素的定位,操作流程可以查看基于Python的IOS自动化测试环境搭建 ,但是在一些特殊的场景需要灵活使用元素定位。 …

大数据平台/大数据技术与原理-实验报告--部署全分布模式HBase集群和实战HBase

实验名称 部署全分布模式HBase集群和实战HBase 实验性质 &#xff08;必修、选修&#xff09; 必修 实验类型&#xff08;验证、设计、创新、综合&#xff09; 综合 实验课时 2 实验日期 2023.11.07-2023.11.10 实验仪器设备以及实验软硬件要求 专业实验室&#xff…