#define FATFS_WR_SIZE 1024
#define FATFS_WR_CYCLE 8192
extern
u32 wrtime;
int
main(
void
)
{
FIL* f_txt;
u8 key,res;
u16 i;
u8 *p;
u8 *pname;
u8 *wbuffer;
u16 wt;
Stm32_Clock_Init(9);
uart_init(72,115200);
delay_init(72);
usmart_dev.init(72);
TIM6_Int_Init(10000,7199);
LED_Init();
KEY_Init();
LCD_Init();
W25QXX_Init();
my_mem_init(SRAMIN);
exfuns_init();
f_mount(fs[0],
"0:"
,1);
f_mount(fs[1],
"1:"
,1);
font_init();
while
(SD_Init())
{
LCD_ShowString(30,150,200,16,16,
"SD Card Error!"
);
delay_ms(500);
LCD_ShowString(30,150,200,16,16,
"Please Check! "
);
delay_ms(500);
LED0=!LED0;
}
p=mymalloc(SRAMIN,50);
pname=mymalloc(SRAMIN,30);
f_txt=(FIL *)mymalloc(SRAMIN,
sizeof
(FIL));
wbuffer=mymalloc(SRAMIN,FATFS_WR_SIZE);
for
(i=0;i
{
wbuffer[i]=
'T'
;
wbuffer[i+1]=
'e'
;
wbuffer[i+2]=
's'
;
wbuffer[i+3]=
't'
;
wbuffer[i+4]=
'!'
;
wbuffer[i+5]=
'!'
;
wbuffer[i+6]=
'!'
;
wbuffer[i+7]=
' '
;
}
LCD_Clear(WHITE);
POINT_COLOR=RED;
Show_Str(30,50,200,16,
"战舰STM32F103开发板"
,16,0);
Show_Str(30,70,200,16,
"SDIO写入速度测试"
,16,0);
Show_Str(30,90,200,16,
"KEY0:开始测试"
,16,0);
sprintf
((
char
*)p,
"文件大小:%dKB"
,FATFS_WR_CYCLE*FATFS_WR_SIZE/1024);
Show_Str(30,120,200,16,p,16,0);
POINT_COLOR=BLUE;
while
(1)
{
key=KEY_Scan(0);
if
(key==KEY0_PRES)
{
Show_Str(30,140,200,16,
"写入耗时: "
,16,0);
Show_Str(30,160,200,16,
"平均速度: "
,16,0);
text_new_pathname(pname);
TIM6->CNT=0;
wrtime=0;
wt=0;
res=f_open(f_txt,(
const
TCHAR
*)pname,FA_WRITE|FA_CREATE_NEW);
if
(res==0)
{
for
(i=0;i
{
res=f_write(f_txt,wbuffer,FATFS_WR_SIZE,&bw);
if
(res)
break
;
if
(wt!=wrtime)
{
wt=wrtime;
LCD_ShowNum(30+80,140,wt,3,16);
}
}
}
if
(res==0)
{
wt=FATFS_WR_CYCLE*FATFS_WR_SIZE/1024/wrtime;
sprintf
((
char
*)p,
"平均速度:%dKB/s"
,wt);
Show_Str(30,160,200,16,p,16,0);
}
else
printf
(
"失败"
);
f_close(f_txt);
}
delay_ms(10);
}
}