硬汉嵌入式论坛

 找回密码
 立即注册
查看: 5044|回复: 3
收起左侧

[ThreadX全家桶] ThreadX Filex根目录文件浏览功能实现代码,通过函数fx_directory_next_full_entry_find可实现

[复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106726
QQ
发表于 2021-1-19 08:25:57 | 显示全部楼层 |阅读模式
这两天将FileX的基础常用API都先测试下,方便我写教程:

下面是文件浏览功能实现:
  1. /*
  2. *********************************************************************************************************
  3. *        函 数 名: ViewRootDir
  4. *        功能说明: 显示SD卡根目录下的文件名
  5. *        形    参:无
  6. *        返 回 值: 无
  7. *********************************************************************************************************
  8. */
  9. extern SD_HandleTypeDef uSdHandle;
  10. static void ViewRootDir(void)
  11. {
  12.     UINT status;
  13.     UINT attributes;
  14.     ULONG size;
  15.     UINT year;
  16.     UINT month;
  17.     UINT day;
  18.     UINT hour;
  19.     UINT minute;
  20.     UINT second;
  21.     UINT cnt;
  22.     ULONG64 available_bytes;
  23.         
  24.    
  25.     /* 挂载SD卡 */
  26.     status =  fx_media_open(&sdio_disk, "STM32_SDIO_DISK", _fx_stm32_sdio_driver, 0, media_memory, sizeof(media_memory));

  27.     if (status != FX_SUCCESS)
  28.     {
  29.         printf("挂载文件系统失败 -- %d\r\n", status);
  30.         return;
  31.     }
  32.    
  33.    
  34.     printf("属性        |  文件大小 | 短文件名 | 长文件名\r\n");
  35.         for (cnt = 0; ;cnt++)
  36.         {
  37.         /* 读取目录项,索引会自动下移 */
  38.         status = fx_directory_next_full_entry_find(&sdio_disk,
  39.                                                     entry_name,
  40.                                                     &attributes,
  41.                                                     &size,
  42.                                                     &year, &month, &day,
  43.                                                     &hour, &minute, &second);
  44.         
  45.         if (status != FX_SUCCESS || entry_name[0] == 0)
  46.                 {
  47.                         break;
  48.                 }

  49.                 if (entry_name[0] == '.')
  50.                 {
  51.                         continue;
  52.                 }

  53.                 /* 判断是文件还是子目录 */
  54.                 if (attributes & FX_DIRECTORY)
  55.                 {
  56.                         printf("目录  ");
  57.                 }
  58.                 else
  59.                 {
  60.                         printf("文件  ");
  61.                 }

  62.                 /* 打印文件大小, 最大4G */
  63.                 printf(" %10d", (int)size);


  64.                 printf("  %s\r\n", (char *)entry_name);        /* 长文件名 */
  65.         }
  66.    
  67.     /* 打印卡速度信息 */
  68.     if(uSdHandle.SdCard.CardSpeed == CARD_NORMAL_SPEED)
  69.     {
  70.         printf("Normal Speed Card <12.5MB/S, MAX Clock < 25MHz, Spec Version 1.01\r\n");           
  71.     }
  72.     else if (uSdHandle.SdCard.CardSpeed == CARD_HIGH_SPEED)
  73.     {
  74.         printf("High Speed Card <25MB/s, MAX Clock < 50MHz, Spec Version 2.00\r\n");            
  75.     }
  76.     else if (uSdHandle.SdCard.CardSpeed == CARD_ULTRA_HIGH_SPEED)
  77.     {
  78.         printf("UHS-I SD Card <50MB/S for SDR50, DDR50 Cards, MAX Clock < 50MHz OR 100MHz\r\n");
  79.         printf("UHS-I SD Card <104MB/S for SDR104, MAX Clock < 108MHz, Spec version 3.01\r\n");   
  80.     }  

  81.     /* SD卡剩余容量大小 */
  82.     status = fx_media_extended_space_available(&sdio_disk, &available_bytes);   

  83.     if (status == FX_SUCCESS)
  84.     {
  85.         printf("SD卡剩余容量大小 -- %lldMB\r\n", available_bytes/1024/1024);
  86.     }
  87.    
  88.     /* 卸载SD卡 */
  89.     status =  fx_media_close(&sdio_disk);

  90.     if (status != FX_SUCCESS)
  91.     {
  92.         printf("卸载文件系统卸载失败 -- %d\r\n", status);
  93.     }
  94. }
复制代码




回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106726
QQ
 楼主| 发表于 2021-1-19 08:31:26 | 显示全部楼层
效果:
QQ截图20210119082658.png
回复

使用道具 举报

14

主题

99

回帖

141

积分

初级会员

积分
141
发表于 2021-1-19 15:25:16 | 显示全部楼层
期待了,可以先把移植的发布一下么
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106726
QQ
 楼主| 发表于 2021-1-20 08:00:50 | 显示全部楼层
LR215 发表于 2021-1-19 15:25
期待了,可以先把移植的发布一下么

可以,近期就更新FileX教程了。
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-2 08:56 , Processed in 0.184006 second(s), 36 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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