OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 8049|回复: 0

求解 中断服务程序里f_close(&fsrc); 为何没有执行

[复制链接]

2

主题

3

帖子

0

精华

新手入门

积分
31
金钱
31
注册时间
2012-4-15
在线时间
0 小时
发表于 2012-4-28 20:32:25 | 显示全部楼层 |阅读模式
不知为何中断服务子程序里 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);     //清除中断标志位
  }  
}
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-25 16:57

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表