unsigned short int Width:截取图像的宽度;
unsigned short int Height:截取图像的高度;
char *filename:保存在TF卡中的文件名。
该函数首先根据接收到的文件名参数创建并打开文件。然后将按照位置参数和大小参数来构造BMP文件的信息头,写入文件。
接着,调用了bmp4()这个函数,bmp4()函数返回LCD上指定位置的像素信息。返回的单个像素信息被保存在tmp_rgb变量中。然后函数依次调用GETG_FROM_RGB16()、GETB_FROM_RGB16()和GETR_FROM_RGB16 ()这三个宏定义,从tmp_rgb变量中分别抽取出R、G、B数据并分别将其线性映射为8位数据即映射为RGB888真彩色。宏定义的内容如下所示:
#define GETR_FROM_RGB16(RGB565) ((unsigned char)(( ((unsigned short int )RGB565) >>11)<<3)) //返回8位 R
#define GETG_FROM_RGB16(RGB565) ((unsigned char)(( ((unsigned short int )(RGB565 & 0x7ff)) >>5)<<2)) //返回8位 G
#define GETB_FROM_RGB16(RGB565) ((unsigned char)(( ((unsigned short int )(RGB565 & 0x1f))<<3))) //返回8位 B
之后,截图函数将RGB888颜色信息写入刚才打开的TF卡文件中,并且根据位图宽与四字节对齐的关系来补充需要的0大小字节。所有图像信息写入完毕后,关闭该文件。
截图函数的流程图如图 3.12所示。
 

3.5    系统调试与分析
在程序设计的整个过程中,调试是其中不可或缺的重要组成部分。通过调试,可以及时发现程序中存在的问题与不足,并加以分析,从而制定解决方案,并修正、改进。
本系统在一次运行的过程中,发现摄像头进行拍摄照片时,MP3功能无法同时运行。具体表现在:摄像头拍照时MP3并没有发出报警声;而且在对屏幕进行截图时系统会卡死,屏幕画面不动了。
为了找出问题的原因,对其进行了调试。调试程序中所用到的工具和软件如下:
上一篇:ZigBee物联网网络数据收集平台设计+流程图
下一篇:Rockwell PLC在电梯自动控制系统中的应用

冷库GPRS的无线数据采集系统设计

STM32F103RBT6单片机的智能家...

STM32蓝牙技术的家庭照明控制器设计+源程序

STC89C52单片机的红外光控防...

STC89C52单片机的家庭火灾报警系统设计+电路图

STC9C52单片机的家庭防盗报...

RFID防盗报警系统设计+电路图

《醉青春》导演作品阐述

浅谈新形势下妇产科护理...

谷度酒庄消费者回访调查问卷表

国内外无刷直流电动机研究现状

高校网球场馆运营管理初探【1805字】

辩护律师的作证义务和保...

拉力采集上位机软件开发任务书

多元化刑事简易程序构建探讨【9365字】

浅谈传统人文精神茬大學...

中国古代秘书擅权的发展和恶变