打印

【znFAT应用实例】STM32F4+TFT触摸屏+SD卡+znFAT 实现画图板及存BMP

[复制链接]
5066|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
znmcu|  楼主 | 2012-12-23 00:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 znmcu 于 2012-12-23 00:58 编辑


振南QQ 987582714  znFAT发布与支持网站 www.znfat.com

振南QQ: 987582714


请关注21IC 振南的znFAT 专版 https://bbs.21ic.com/iclist-139-1.html



STM32F4+TFT触摸屏+SD卡+znFAT 实现画图板及存BMP

源代码下载: paintboard.zip
这里我们要实现一个简单的“画图板”,并可以将绘制的图像保存为图片。当然,我们所说的不是电脑上的软件,而是一个嵌入式的实验,其中包含了单片机或微处理器、存储设备、TFT液晶与触摸控制器等。
其实“画图板”的原理很简单,获得触摸屏上的点(x,y)座标位置,然后在这个点上画上若干个点(画点的数量,就会影响画图的线条宽度)。当触摸笔在屏上连续的滑动时,自然就会产生相应的线条。如下图:

图中上面的线条比下面的线条细,是因为上面在每一个触摸的座标(x,y)上,所画的点的个数比下面多。画图板更重要的一个功能是能够选择更换画笔颜色。这一功能通常我们是使用“颜料盘”来完成(就像Windows中的画图板程序中一样)。如下图:

在显示的区域中,我们放几个颜色块,它们各自占用相应的矩形。程序可以判断当前触摸笔所处的座标是否在这些矩形区域内,如果在则将画点的颜色更改为相应的颜色,否则就用当前的颜色画点。这样,就完成了一个简单的画图板
画完图之后,我们希望将我们的“杰作”保存为图片,这该如何来作呢?我们可以使用SD卡来作为存储设备,读取显示屏上所有点的像素值,依次写入到SD卡的文件中(图片格式使用BMP,因为它最简单,无需作压缩处理)。这里最大的问题在于:如何将像素数据写成一个在SD卡目录下的BMP文件。这件事情其实并不容易,涉及到文件系统,比如FAT32等(正是因为有文件系统来管理存储设备的存储空间,我们才会看到那些呈现在我们面前的一个个的文件)。FAT32文件系统有一套庞杂而完备的协议,我们要想以文件的方式来读写数据,就必须要遵循这些协议(这些协议用于规定文件目录如何组织,数据如何存储等)。我们需要写一套代码来实现对文件的操作,如何来写?似乎毫无头绪!
为了能够方便而轻松的完成对存储设备中文件的操作,振南花费了大量精力来研究FAT32的具体实现和解决方案。现在,大家可以用使用振南的znFAT来实现这些文件操作的功能。
实验中,我们所使用的实际芯片和器件:核心处理器STM32F407(意法半导体的Cortex-M4内核ARM处理器,性能比较高)、TFT液晶(控制器为ILI9325,320X240分辨率,16位色)、ADS7864(4线触摸控制器,对电阻触摸产生的模拟量进行测量,换算得到相应的屏上座标)、SD卡(4G卡容量的SDHC卡,使用振南的SD卡模块与处理器相连接)。
上面所说的是硬件器件,在软件上我们首先要使用的是振南的znFAT(用于实现对SD卡上文件的读写操作),其次TFT液晶和触摸屏的驱动与程序移植于STM32F103(原属于一款开发板的实验例程,这里直接拿来使用,F407与F103的固件库是比较相似的!)
再来看一下本实验的示意图:

图中STM32F407的测试板使用的是意法官方的M4 Discovery。实验中使用的芯片与器件都很常见,以方便大家DIY。

在线视频演示:



实验中存取的BMP文件:
2012-12-23 00:47 上传
下载附件 (3.72 KB)





硬件平台:(STM32F407 Discovery 测试板+振南的SD卡模块+触摸屏)

实验效果图(一些实验中间效果,对一些单一功能的测试):
2012-12-23 00:31 上传
下载附件 (20.94 KB)



最终实验效果:
2012-12-23 00:31 上传
下载附件 (12.02 KB)




相关帖子

沙发
戒指320| | 2012-12-23 13:18 | 只看该作者
沙发

使用特权

评论回复
板凳
emailli| | 2012-12-23 22:12 | 只看该作者
好东西啊

使用特权

评论回复
地板
戒指320| | 2012-12-24 09:53 | 只看该作者
F4 基于 “znfat”做数码相框应该很好

使用特权

评论回复
5
znmcu|  楼主 | 2012-12-24 10:29 | 只看该作者
把屏挂到fsmc总线上,提高刷屏速度,可以做视频播放,znfat的性能和速度是够的。

使用特权

评论回复
6
znmcu|  楼主 | 2012-12-24 10:32 | 只看该作者
可以看一下网友用znfat做的视频播放试验
[转帖]STM32显示视频方法和源码下载
http://www.znfat.com/bbs/topic.asp?id=63&boardid=45&tb=1

使用特权

评论回复
7
戒指320| | 2012-12-24 10:41 | 只看该作者
除了文件系统 应该着重是处理器性能 用f103应该不 能放视频,407肯定是能的

使用特权

评论回复
8
znmcu|  楼主 | 2012-12-24 12:27 | 只看该作者
其实人们所说的普遍意义上的视频播放,还有一个非常重要的工作,就是视频解码,上面的实验,是用STM32F103来作的,不过没有作视频解码,解码工作由PC上的一个专门的软件来作,最后将解码后的RGB像素数据打包为一个文件,STM32就可以直接读文件数据,送给LCD显示。
这样,一些低端的CPU也可以来作一些所谓的“视频播放”,如开机动画。其实这个跟我们平时对图像取模是一个道理。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:振南的znFAT -- 单片机上上的FAT32文件系统 www.znmcu.cn

4474

主题

5195

帖子

33

粉丝