大学生
最后登录1970-1-1
在线时间 小时
注册时间2013-5-1
|
举一个VS1003的例子,实际用效果很好,暂时没有问题,在UCGUI的综合历程里面
多次的用到这个方法
/* 用于申请动态内存 */
static GUI_HMEM hMemMP3Name, hMemMP3Buff, hMemMP3Spec, hMemMP3File;
1. 为MP3的名字申请动态内存
static uint8_t *g_ucTemBuff;
static char *MP3_Name[20];
/* 申请一块内存空间 并且将其清零 */
hMemMP3Name = GUI_ALLOC_AllocZero(200);
/* 将申请到内存的句柄转换成指针类型 */
g_ucTemBuff = GUI_ALLOC_h2p(hMemMP3Name);
for(i = 0; i < 20; i++)
{
MP3_Name = (char *)&g_ucTemBuff[i*20];
}
2. 用于MP3播放器的BUFF
static uint8_t *g_ucMP3Buff;
/* 申请一块内存空间 并且将其清零 用MP3数据缓存*/
hMemMP3Buff = GUI_ALLOC_AllocZero(512);
g_ucMP3Buff = GUI_ALLOC_h2p(hMemMP3Buff);
3. 用于VS1003频谱的BUFF
/* 申请动态内存用于频谱的显示 */
/* 用于频谱显示 */
static uint8_t *s_MP3Spec_TopVal; /* 频谱顶值表 */
static uint8_t *s_MP3Spec_CurVal; /* 频谱当前值表 */
static uint8_t *s_MP3Spec_Time; /* 顶值停留时间表 */
static uint8_t *s_MP3Spec_Wave; /* 频谱数据 */
hMemMP3Spec = GUI_ALLOC_AllocZero(56);
g_ucTemBuff = GUI_ALLOC_h2p(hMemMP3Spec);
s_MP3Spec_TopVal = &g_ucTemBuff[0];
s_MP3Spec_CurVal = &g_ucTemBuff[14];
s_MP3Spec_Time = &g_ucTemBuff[28];
s_MP3Spec_Wave = &g_ucTemBuff[42];
4. 用于FATFS
hMemMP3File = GUI_ALLOC_AllocZero(sizeof(FIL));
filemp3 = (FIL *)GUI_ALLOC_h2p(hMemMP3File);
5. 使用完了一定记得释放,要不后果很悲催
/* 释放申请的内存空间 */
GUI_ALLOC_Free(hMemMP3Name);
/* 释放申请的内存空间 */
GUI_ALLOC_Free(hMemMP3Buff);
GUI_ALLOC_Free(hMemMP3Spec);
GUI_ALLOC_Free(hMemMP3File);
|
|