本系统所用到的AT指令如下:
printf("at+csmp=17,0,0,8\r\n"); //设置为中文格式
OSTimeDlyHMSM(0,0,0,500);
printf("AT+CSCS=\"UCS2\"\r\n"); //设置为ucs2格式,中文需要ucs2支持
OSTimeDlyHMSM(0,0,0,500);
printf("AT+CMGF=1\r\n"); //设置为text模式
OSTimeDlyHMSM(0,0,0,500);
printf("AT+CMGS=\"00310038003800300031003900350032003100370030\"\r\n"); //指定收件人
OSTimeDlyHMSM(0,0,1,0);
printf("4F4F5B85906D5230975E6CD551654FB5FF01FF01FF01"); //发送内容
printf("%c",0x1A); //文本结束符
OSTimeDlyHMSM(0,0,0,200);
其中:
AT+CSMP :该指令用来设置TEXT 方式参数。
AT+CSCS:指定字符集。中文短信使用的字符集为UCS2。
AT+CMGF:用来设置消息模式。0为PDU模式,1为TEXT模式。
AT+CMGS:指定手机号,手机号用unicode编码表示。
短信发送任务的流程图如图 3.9所示。
3.4 各函数设计
3.4.1 MP3播放函数void MP3_Play(void)
该函数的功能是搜索TF卡中名为alarm.mp3的声音文件,并播放。MP3播放函数的流程图如图 3.10所示。
3.4.2 汉字显示函数void LCD_Str_CH_O()
该函数用来在指定坐标处悬浮显示16*16大小的指定颜色汉字字符串。函数有4个参数:
U16 x:汉字在屏幕上的横坐标;
U16 y:汉字在屏幕上的纵坐标;
Const u8 *str:字符串的内容;
U16 Color:字符串显示的颜色(因为系统所使用的LCD屏是RGB565即16位色度的,即5位R,6位G,5位B,所以我们需要按比例将24为真彩色压缩为16位)。具体代码如下所示:
#define RGB24TORGB16(R,G,B) ((unsigned short int)((((R)>>3)<<11)|(((G)>>2)<<5)| ((B)>>3)))
在本系统中定义了8种基本的颜色,包括三原色红、绿、蓝,三补色青、洋红、黄,以及黑和白。系统中定义颜色的代码如下所示(在lcd.h文件中)。
/******常用颜色*****/
#define RED 0XF800
#define GREEN 0X07E0
#define BLUE 0X001F
#define BRED 0XF81F
#define GRED 0XFFE0
#define GBLUE 0X07FF
#define BLACK 0X0000
#define WHITE 0XFFFF
汉字显示函数void LCD_Str_CH_O(u16 x,u16 y,const u8 *str,u16 Color)的流程图如图 3.11所示。
在该函数中调用了字符显示函数,字符显示函数用来依次显示字符串中的每一个字符。当把一个汉字传给字符显示函数后,字符显示函数首先调用GetGBKCode_from_sd()函数从SD卡中读出该汉字的字模数据,保存在buffer数组中,然后根据buffer中的内容,逐像素的显示该汉字字符。
关于字模。在该系统中,每个汉字都由16*16的点阵来显示,把笔迹经过的像素点以“1”表示,没有笔迹的点以“0”表示,每个像素点的状态以一个二进制位来记录,用16*16/8 =32个字节就可以把这个字记录下来。这32个字节数据就称为该汉字的字模。
3.4.3 截图函数int Screen_shot()
在本系统中,当摄像头捕获到画面并显示在LCD屏上后,便会调用截图函数,将屏幕上的图像保存到TF卡中。该函数有5个参数。其中:
unsigned short int x:图像左上角在屏幕上的横坐标;
unsigned short int y:图像左上角在屏幕上的纵坐标;
- 上一篇:ZigBee物联网网络数据收集平台设计+流程图
- 下一篇:Rockwell PLC在电梯自动控制系统中的应用
-
-
-
-
-
-
-
C++最短路径算法研究和程序设计
g-C3N4光催化剂的制备和光催化性能研究
浅析中国古代宗法制度
巴金《激流三部曲》高觉新的悲剧命运
现代简约美式风格在室内家装中的运用
上市公司股权结构对经营绩效的影响研究
江苏省某高中学生体质现状的调查研究
中国传统元素在游戏角色...
NFC协议物理层的软件实现+文献综述
高警觉工作人群的元情绪...