又来求救了,我想把SD卡中的BMP文件读出来,发送到串口,再经过GPRS发彩信,因为处理器存储区不够,所以采用分次读的方式,但是发送到手机上的图片只有最下面一部分能正常显示,上面的就不对了。例如下面的图片发送到手机上,只能清楚的看到“光影魔术手4”及其背景色,上面就乱糟糟的了。
下面为读取SD卡中BMP文件,将数据发送到串口的程序,麻烦大家指正一下,谢谢~~~ while(f_open(&file, "IMG0000.bmp", FA_OPEN_EXISTING |FA_READ)); // 以读方式打开,如果文件不存在则打开失败
{
SendString1("Open OK!\r\n");
n=file.fsize/5120;
m=file.fsize%5120;
for(i=1;i<=n;i++)
{
Cleanbuffer(); //清除buffer中的内容其中 buffer定义为unsigned char buffer[5120]; //sd卡读取缓冲区
f_read(&file, buffer,5120, &br);
for(j=0;j<5120;j++)
{
SendData3(buffer[j]);
delay_ms(15);
}
f_lseek(&file,(i*5120));
}
f_lseek(&file,n*5120);
Cleanbuffer();
f_read(&file, buffer,m, &br);
for(j=0;j<m;j++)
{
SendData3(buffer[j]);
delay_ms(15);
}
delay_ms(20);
SendString1("send OK!\r\n");
f_close(&file); //关闭文件
}
其中 buffer定义为unsigned char buffer[5120]; //sd卡读取缓冲区
|