中级会员
- 积分
- 297
- 金钱
- 297
- 注册时间
- 2016-6-2
- 在线时间
- 49 小时
|
发表于 2016-9-26 07:12:44
|
显示全部楼层
在emWin中使用delay_ms,好像也是延时非常短,是不是system的文件需要修改。我使用的在压缩文件里边。
原子兄 能否帮忙看看。
我没有带操作系统。
下面检测SD,检测3次以后就出错。把GUI_Delay改为delay_ms,没有啥改变。
但在不带emWin的系统中一直好用。
void test_SD(void)
{
u32 total,free;
u8 t=0;
delay_init();
LCD_Clear(WHITE);
POINT_COLOR=RED;//设置字体为红色
LCD_ShowString(60,50,200,16,16,"Mini STM32");
LCD_ShowString(60,70,200,16,16,"FATFS TEST");
LCD_ShowString(60,90,200,16,16,"ATOM@ALIENTEK");
LCD_ShowString(60,110,200,16,16,"Use USMART for test");
LCD_ShowString(60,130,200,16,16,"2014/3/14");
while(SD_Initialize()) //检测SD卡
{
LCD_ShowString(60,150,200,16,16,"SD Card Error!");
//GUI_Delay(200);
delay_ms(200);
LCD_Fill(60,150,240,150+16,WHITE);//清除显示
//GUI_Delay(200);
delay_ms(500);
LED_R=!LED_R;//DS0闪烁
}
exfuns_init(); //为fatfs相关变量申请内存
f_mount(fs[0],"0:",1); //挂载SD卡
//f_mount(fs[1],"1:",1); //挂载FLASH.
while(exf_getfree("0",&total,&free)) //得到SD卡的总容量和剩余容量
{
LCD_ShowString(60,150,200,16,16,"Fatfs Error!");
//GUI_Delay(200);
delay_ms(200);
LCD_Fill(60,150,240,150+16,WHITE);//清除显示
//GUI_Delay(500);
delay_ms(500);
LED_R=!LED_R;//DS0闪烁
}
POINT_COLOR=BLUE;//设置字体为蓝色
LCD_ShowString(60,150,200,16,16,"FATFS OK!");
LCD_ShowString(60,170,200,16,16,"SD Total Size: MB");
LCD_ShowString(60,190,200,16,16,"SD Free Size: MB");
LCD_ShowNum(172,170,total>>10,5,16); //显示SD卡总容量 MB
LCD_ShowNum(172,190,free>>10,5,16); //显示SD卡剩余容量 MB
// while(1)
// {
// t++;
// delay_ms(200);
// LED_R=!LED_R;//DS0闪烁
// }
for(t=0;t<10;t++)
//GUI_Delay(500);
delay_ms(200);
}
|
|