新手入门
- 积分
- 31
- 金钱
- 31
- 注册时间
- 2012-4-15
- 在线时间
- 0 小时
|
不知为何中断服务子程序里 f_close(&fsrc); 没有执行 , 请前辈们帮我看下程序,谢谢!
/* I/O线中断,中断线为PB1 */ // 中断服务程序
void EXTI1_IRQHandler(void)
{
if(EXTI_GetITStatus(EXTI_Line1) != RESET) //确保是否产生了EXTI Line中断
{
n++;
int2str(now,n);
LCD_Rectangle(40,130,60,16,0xcefa); //通过填充来去除重影
LCD_Str_6x12_O(40,130,now,0); eepSkyBlue;">//在液晶显示了
if(n%16==0)
{
m1++;
//*******************************************
int2str(now1,m1); // x 转化为 n[5] 初始化 now.txt 中的值为n[5]=0字符型
LCD_Str_6x12_O(40,150,now1,0); eepSkyBlue;">//在液晶显示了
f_mount(0, &fs[0]); /* 在文件系统中注册一个工作区 */
res = f_open( &fsrc , "0:/00201204.TXT" , FA_OPEN_ALWAYS | FA_WRITE);
res = f_lseek(&fsrc , 0);
LCD_Str_6x12_O(80,150,now1,0); eepSkyBlue;">//在液晶显示了
res = f_write(&fsrc, now1, sizeof(now1), &br);
LCD_Str_6x12_O(120,150,now1,0); eepSkyBlue;">//在液晶显示了
res = f_close(&fsrc);
LCD_Str_6x12_O(80,190,now1,0); //在液晶没有显示,程序到这里停止了
res = f_open(&fsrc, "0:/00201204.TXT", FA_OPEN_EXISTING | FA_READ); /* 打开文件 */
br = 1;
a = 0;
for (;;)
{
for ( a=0; a<512; a++ ) /* 清缓冲区 */
buffer[a]=0;
res = f_read( &fsrc, buffer, sizeof(buffer), &br ); /* 将文件里面的内容读到缓冲区 */
if (res || br == 0) break; /* 错误或者到了文件尾 */
for(a=0;a<20;a++)
now1[a] = buffer[a];
now1[19]='\0';
}
f_close(&fsrc); /* 关闭打开的文件 */
LCD_Rectangle(40,210,60,16,0xcefa); //通过填充来去除重影
LCD_Str_6x12_O(40,210,now1,0); //在液晶显示shijian
}
EXTI_ClearFlag(EXTI_Line1); //清除中断标志(必须)
EXTI_ClearITPendingBit(EXTI_Line1); //清除中断标志位
}
} |
|