打印
[znFAT的移植与应用]

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

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


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



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

源代码下载: paintboard.zip (592.16 KB)

这里我们要实现一个简单的“画图板”,并可以将绘制的图像保存为图片。当然,我们所说的不是电脑上的软件,而是一个嵌入式的实验,其中包含了单片机或微处理器、存储设备、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文件:



硬件平台:(STM32F407 Discovery 测试板+振南的SD卡模块+触摸屏)
实验效果图(一些实验中间效果,对一些单一功能的测试):
最终实验效果:

相关帖子

沙发
zbhbyc| | 2012-12-24 13:34 | 只看该作者

使用特权

评论回复
板凳
wanglituan| | 2013-1-3 22:09 | 只看该作者
很给力,顶上。

使用特权

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

本版积分规则

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

4474

主题

5195

帖子

33

粉丝