中级会员
 
- 积分
- 297
- 金钱
- 297
- 注册时间
- 2016-6-2
- 在线时间
- 49 小时
|

楼主 |
发表于 2016-9-27 20:55:45
|
显示全部楼层
TIM3_Int_Init(999,71); //1KHZ 定时器1ms
TIM6_Int_Init(999,719); //10ms中断
这两个定时器设定前调用check_SD(),一切正常。
这两个定时器设定后调用check_SD(),马上有问题。
int main(void)
{
u8 i;
delay_init(); //延时函数初始化
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
//uart1_init(9600); //串口初始化为9600
uart2_init(9600); //串口初始化为9600
LED_Init(); //LED端口初始化
TFTLCD_Init(); //LCD初始化
KEY_Init(); //按键初始化
TP_Init(); //触摸屏初始化
exfuns_init();
for(i=0; i<10;i++)
{
check_SD();
LCD_ShowNum(60,200,i,2,16);
delay_ms(1000);
LCD_ShowString(60,200,100,16,16," ");
}
TIM3_Int_Init(999,71); //1KHZ 定时器1ms
TIM6_Int_Init(999,719); //10ms中断
for(i=0; i<10;i++)
{
check_SD();
LCD_ShowNum(60,200,i,2,16);
delay_ms(1000);
LCD_ShowString(60,200,100,16,16," ");
}
。。。。。
}
unsigned int check_SD(void)
{
u32 total,free;
u8 i, flag=0;
i=10;
LCD_Clear(WHITE);
while(i) //检测SD卡
{
if(SD_Initialize())
{
LCD_ShowString(30,180,200,16,16,"SD Card Error!");
delay_ms(500);
LCD_Fill(30,180,240,150+16,GRAY);//清除显示
delay_ms(100);
LED_B=1;
LED_R=!LED_R;//DS0闪烁
i--;
flag=1;
}
else
i=0;
}
if(flag!=0) return flag;
exfuns_init(); //为fatfs相关变量申请内存
f_mount(fs[0],"0:",1); //挂载SD卡
//f_mount(fs[1],"1:",1); //挂载FLASH.
i=5;
while(i) //得到SD卡的总容量和剩余容量
{
if(exf_getfree("0",&total,&free))
{
LCD_ShowString(30,180,200,16,16,"Fatfs Error!");
delay_ms(200);
LCD_Fill(60,180,240,150+16,WHITE);//清除显示
delay_ms(200);
LED_B=1;
LED_R=!LED_R;
flag=2;
}
else
i=0;
}
if(flag!=0)
{LED_B=1;LED_R=0;return flag; }
else
{
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(30,180,200,16,16,"SD Test Ok. Free Size: MB");
// LCD_ShowNum(172,170,total>>10,5,16); //显示SD卡总容量 MB
LCD_ShowNum(220,180,free>>10,5,16); //显示SD卡剩余容量 MB
delay_ms(200);
delay_ms(200);
return flag;
}
}
|
|