在线时间29 小时
UID417644
ST金币0
蝴蝶豆0
注册时间2012-7-30
中级会员
- 最后登录
- 2020-1-17
|
a0a.1 0b0c
我写了一个在内存卡中读取数据并发送的程序,程序编译没有任何错误,但是一下载到STM32中串口就发送系统错误的信息。
>>>>>>>>>>>>>>>>>>>>>>>SYSTEM ERROR</pp>>SYSTEM ERRORFileNameLen[1];
Buffer[9]=(unsigned char)Buf->FileName[0];
Buffer[10]=(unsigned char)Buf->FileName[1];
Buffer[11]=(unsigned char)Buf->FileName[2];
Buffer[12]=(unsigned char)Buf->FileName[3];
Buffer[13]=(unsigned char)Buf->FileName[4];
// LCD_Str_CH_P(240,10,"缓冲区赋值成功",0);
// LCD_Str_O_P(300, 10, "Buffer ready", 0);
f_mount(1,&Datafs);
Datares=f_open(&Datafsrc,tmp_name,FA_READ);
if(Datares==FR_OK)
{
//LCD_Str_CH_P(260,10,"成功打开文件",0);
LCD_Str_O_P(300, 10, "openfile", 0);
for(;;)
{
//这里分段是从i=0开始
if(iSegment) //如果分段不满
{
j=1000;
Buffer[14]=j&0x00ff;
Buffer[15]=(j>>8)&0x00ff;
Buffer[16]=Buffer[14];
Buffer[17]=Buffer[17];
Datares=f_read(&Datafsrc,&Buffer[18],1000,&mybw);
// USART1_printf(USART1,"%s",Buffer);//发送mms
Buffer[5]=i;
Buffer[5]=i; //到这里,Buffer的头部分已经准备好了
}
if(i==Buf->Segment) //如果分段满 5, 0,1,2,3,4,5 实际有六段,5段为满1000的,最后一段为不满1000的
{ //这时候DataLen[0]=5,假如Buffer=5800,那么,满1000的有5段,不满1000的为最后一段
Buffer[14]=Buf->DataLen[1]&0x00ff;
Buffer[15]=(Buf->DataLen[1]>>8)&0x00ff;
Buffer[16]=Buffer[14];
Buffer[17]=Buffer[17];
Datares=f_read(&Datafsrc,&Buffer[18],Buf->DataLen[0],&mybw);
// USART1_printf(USART1,"%s",Buffer);
break;
// for()
}
i++;
}
}
f_close(&Datafsrc);
}
|
-
|