OpenEdv-开源电子网

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

请教fatfs显示SD卡目录的问题

[复制链接]

21

主题

53

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
307
金钱
307
注册时间
2017-12-22
在线时间
65 小时
发表于 2018-9-24 23:07:24 | 显示全部楼层 |阅读模式
3金钱
我想在LCD12864上显示SD卡中一个文件夹中的文件名字,程序已写好,最基本的是可以显示的,但加了一些判断语句就不行了,请大神帮忙看下程序
显示全部文件的名字程序是可以的[mw_shl_code=c,true]int main(void)    显示第二个文件名的,LCD上显示的是“NO”  [mw_shl_code=c,true]int main(void)
{         usmart_dev.init(72);                                         
        W25QXX_Init();                                             
        my_mem_init(SRAMIN);                        
        delay_init();                                  
        uart_init(115200);               
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);       
        LED_Init();                               
        KEY_Init();                                            
        LCD_Init();                                          
                EXTIX_Init();
        exfuns_init();                                                                        initLCD12864();
                f_mount(fs[0],"0:",1);        

        if(f_opendir(&dir,"0:/huatu")==FR_OK)      
        {
                for(mm=0;f_readdir(&dir,&fileinfo)==FR_OK;mm++)  
                {
                        if(!fileinfo.fname[0])break;         
                        if(m==2){
                                                displayString(3,0,fileinfo.fname);
                        delay_ms(50);}
                        else
                                displayString(0,0,"NO");
    }

  }
  else
   displayString(0,0,"CAN'T READ");
}[/mw_shl_code]{         usmart_dev.init(72);                                         
        W25QXX_Init();                                             
        my_mem_init(SRAMIN);                        
        delay_init();                                  
        uart_init(115200);               
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);       
        LED_Init();                               
        KEY_Init();                                            
        LCD_Init();                                          
                EXTIX_Init();
        exfuns_init();                                                                        initLCD12864();
                f_mount(fs[0],"0:",1);        

        if(f_opendir(&dir,"0:/huatu")==FR_OK)      
        {
                for(mm=0;f_readdir(&dir,&fileinfo)==FR_OK;mm++)  
                {
                        if(!fileinfo.fname[0])break;         
                                               displayString(0+mm,0,fileinfo.fname);
    }

  }
  else
   displayString(0,0,"CAN'T READ");
}[/mw_shl_code]

最佳答案

查看完整内容[请看2#楼]

最后那个else去掉的话,LCD上是空白的
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

21

主题

53

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
307
金钱
307
注册时间
2017-12-22
在线时间
65 小时
 楼主| 发表于 2018-9-24 23:07:25 | 显示全部楼层
mmttjj 发表于 2018-9-24 23:10
改成这样,想显示第三个文件名LCD上显示的是NO
[mw_shl_code=c,true]int main(void)
{         usmart_dev.init( ...

最后那个else去掉的话,LCD上是空白的
回复

使用道具 举报

21

主题

53

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
307
金钱
307
注册时间
2017-12-22
在线时间
65 小时
 楼主| 发表于 2018-9-24 23:09:13 | 显示全部楼层
上面有点问题,这是最基础的,能显示三个文件名
[mw_shl_code=c,true]int main(void)
{         usmart_dev.init(72);                                         
        W25QXX_Init();                                             
        my_mem_init(SRAMIN);                        
        delay_init();                                  
        uart_init(115200);               
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);       
        LED_Init();                               
        KEY_Init();                                            
        LCD_Init();                                          
                EXTIX_Init();
        exfuns_init();                                                                        initLCD12864();
                f_mount(fs[0],"0:",1);        

        if(f_opendir(&dir,"0:/huatu")==FR_OK)      
        {
                for(mm=0;f_readdir(&dir,&fileinfo)==FR_OK;mm++)  
                {
                        if(!fileinfo.fname[0])break;         
                                               displayString(0+mm,0,fileinfo.fname);
    }

  }
  else
   displayString(0,0,"CAN'T READ");
}[/mw_shl_code]
回复

使用道具 举报

21

主题

53

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
307
金钱
307
注册时间
2017-12-22
在线时间
65 小时
 楼主| 发表于 2018-9-24 23:10:37 | 显示全部楼层
改成这样,想显示第三个文件名LCD上显示的是NO
[mw_shl_code=c,true]int main(void)
{         usmart_dev.init(72);                                         
        W25QXX_Init();                                             
        my_mem_init(SRAMIN);                        
        delay_init();                                  
        uart_init(115200);               
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);       
        LED_Init();                               
        KEY_Init();                                            
        LCD_Init();                                          
                EXTIX_Init();
        exfuns_init();                                                                        initLCD12864();
                f_mount(fs[0],"0:",1);        

        if(f_opendir(&dir,"0:/huatu")==FR_OK)      
        {
                for(mm=0;f_readdir(&dir,&fileinfo)==FR_OK;mm++)  
                {
                        if(!fileinfo.fname[0])break;         
                        if(m==2){
                                                displayString(3,0,fileinfo.fname);
                        delay_ms(50);}
                        else
                                displayString(0,0,"NO");
    }

  }
  else
   displayString(0,0,"CAN'T READ");
}[/mw_shl_code]
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-20 01:26

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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