/
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
@Name
:
emWin向文件写入一个字节数据
*
*
@Brief
:
none
*
*
@Input
:
Data
:
要写入的数据
*
*
p
:
路径
*
*
@Output
:
none
*
*
@Return
:
none
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
/
static
void _WriteByte
2
File
(
U
8
Data
,
void
*
p
)
{
UINT
nWrite
=
0
;
f_write
(
(
FIL
*
)
p
,
(
TCHAR
*
)
&
Data
,
1
,
&
nWrite
)
;
}
/
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
@Name
:
emWin得到一幅图片并写入存储器
*
*
@Brief
:
none
*
*
@Input
:
*
FileName
:
文件名称
*
(
x
0
,
y
0
)
:
起点坐标
*
xSize
:
图片X方向大小
*
ySize
:
图片Y方向大小
*
*
@Output
:
none
*
*
@Return
:
none
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
/
void
emWin_CreateBMPPicture
(
uint
8
_t
*
FileName
,
int x
0
,
int y
0
,
int xSize
,
int ySize
)
{
static
FIL hFile;
GUI_COLOR
forecolor
,
backcolor;
/
/
/
/
保险起见,先保存一下
/
/
forecolor
=
GUI_GetColor
(
)
;
/
/
获取前景颜色
backcolor
=
GUI_GetBkColor
(
)
;
/
/
获取背景颜色
/
/
/
/
创建一个文件
/
/
f_open
(
&
hFile
,
(
const
TCHAR
*
)
FileName
,
FA_READ | FA_WRITE | FA_CREATE_ALWAYS
)
;
GUI_BMP_SerializeEx
(
_WriteByte
2
File
,
x
0
,
y
0
,
xSize
,
ySize
,
&
hFile
)
;
f_close
(
&
hFile
)
;
/
/
写完,关闭文件
GUI_SetColor
(
forecolor
)
;
/
/
恢复前景颜色
GUI_SetBkColor
(
backcolor
)
;
/
/
恢复背景颜色
}
/
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
@Name
:
OS创建按键任务
*
*
@Brief
:
none
*
*
@Input
:
none
*
*
@Output
:
none
*
*
@Return
:
none
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
/
void
Key_Task
(
void
*
pdata
)
{
u
8
i
=
0
;
u
8
buf[
100
];
pdata
=
pdata;
while
(
1
)
{
OSTimeDlyHMSM
(
0
,
0
,
0
,
20
)
;
/
/
延时
500
ms
if
(
KEY
0
=
=
0
)
{
OSSchedLock
(
)
;
/
/
调度器上锁
LED
1
=
0
;
/
/
亮灯表示正在截屏
sprintf
(
(
char
*
)
buf
,
"0:/SCREENSHORT_%d.bmp"
,
i
)
;
emWin_CreateBMPPicture
(
buf
,
0
,
0
,
800
,
480
)
;
/
/
截屏
LED
1
=
1
;
/
/
完成了,灭灯
i
+
+
;
OSSchedUnlock
(
)
;
/
/
调度器解锁
}
}
;
}
原文出处:http://www.openedv.com/forum.php?mod=viewthread&tid=66053&highlight=%BD%D8%C6%C1