久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標(biāo)題: 移植UCOSIII和FATS到IAR工程,芯片STM32F407,最終可以在串口打印寫(xiě)入SD卡文件 [打印本頁(yè)]

作者: 00日出    時(shí)間: 2018-12-10 22:22
標(biāo)題: 移植UCOSIII和FATS到IAR工程,芯片STM32F407,最終可以在串口打印寫(xiě)入SD卡文件
步驟:(1)從ST官網(wǎng)下載stm32F4例程(自帶有USOIII3.04)。           (3)根據(jù)芯片手冊(cè)修改部分底層BSP。
            (4)添加任務(wù),配置任務(wù)參數(shù)(優(yōu)先級(jí)、堆棧等)。
             (5)書(shū)寫(xiě)主函數(shù)。
             (6)編譯,串口調(diào)試。


單片機(jī)源程序如下:
  1. #include"myfatapp.h"

  2. /****************************************************************************
  3. * Function Name  : FATFS_GetFree
  4. * Description    : 讀取總磁盤(pán)大小和空閑磁盤(pán)大小
  5. * Input          : drv:磁盤(pán)編號(hào)
  6. *                * total:保存讀取到的總磁盤(pán)大小
  7. *                * free:保存讀取到的空閑磁盤(pán)大小
  8. * Output         : None
  9. * Return         : res:讀取狀態(tài)。0:成功;其他則是其他相應(yīng)的錯(cuò)誤信息。
  10. ****************************************************************************/

  11. uint8_t FATFS_GetFree(uint8_t *drv, uint32_t *total, uint32_t *free)
  12. {
  13.         FATFS *fs1;
  14.         u8 res;
  15.     DWORD fre_clust=0, fre_sect=0, tot_sect=0;

  16.     /* 得到磁盤(pán)信息及空閑簇?cái)?shù)量 */
  17.     res = f_getfree((const TCHAR*)drv, &fre_clust, &fs1);

  18.     if(res == 0)  //表示讀取成功
  19.         {                                                                                          
  20.             tot_sect = (fs1->n_fatent-2) * fs1->csize;        //得到總扇區(qū)數(shù)
  21.             fre_sect = fre_clust * fs1->csize;                        //得到空閑扇區(qū)數(shù)
  22.                            
  23. #if _MAX_SS!=512                        //扇區(qū)大小不是512字節(jié),則轉(zhuǎn)換為512字節(jié)
  24.                 tot_sect *= fs1->ssize/512;
  25.                 fre_sect *= fs1->ssize/512;
  26. #endif         

  27.                 *total = tot_sect >> 1;        //單位為KB
  28.                 *free = fre_sect >> 1;        //單位為KB
  29.         }

  30.         return res;        
  31. }

  32. /****************************************************************************
  33. * Function Name  : FATFS_ScanFiles
  34. * Description    : 讀取指定文件下所有文件的名字和后綴
  35. * Input          : dir:掃描的文件路徑
  36. *                * file:用來(lái)存放所有文件的名字和后綴的地址
  37. * Output         : None
  38. * Return         : res:返回讀取的狀態(tài)
  39. ****************************************************************************/

  40. uint8_t FATFS_ScanFiles(uint8_t *dir, FileNameTypeDef *file)
  41. {
  42.         FRESULT res;
  43.         FILINFO  fileInfo;
  44.         DIR dirs;
  45.         char *fn, i = 0;

  46. #if _USE_LFN
  47.     static char lfn[_MAX_LFN + 1];   /* Buffer to store the LFN */
  48.     fileInfo.lfname = lfn;
  49.     fileInfo.lfsize = sizeof(lfn);
  50. #endif
  51.         /* 打開(kāi)文件夾 */
  52.         res = f_opendir(&dirs, (const TCHAR*)dir);
  53.         
  54.         if (res == FR_OK)    //成功打開(kāi)文件夾
  55.         {   
  56.                 while (f_readdir(&dirs, &fileInfo) == FR_OK)   //按照順序讀文件夾
  57.                 {         
  58.                         if(!fileInfo.fname[0])           //如果文件名為0,結(jié)束
  59.                         {
  60.                                 break;     
  61.                         }         
  62.                         
  63.                         /* 判斷文件屬性 */                                                               
  64.                         if((fileInfo.fattrib == AM_ARC)|(fileInfo.fattrib == AM_DIR))
  65.                         {

  66. #if _USE_LFN        //為長(zhǎng)字符串名準(zhǔn)備
  67.                     fn = *fileInfo.lfname ? fileInfo.lfname : fileInfo.fname;
  68. #else
  69.                             fn = fileInfo.fname;
  70. #endif

  71.                                 /* 讀取名字 */
  72.                                 i = 0;
  73.                                while((*fn != '.') && (*fn != '\0')) //有一個(gè)成立就跳出循環(huán)
  74.                                 {
  75.                                         file->name[i] = *fn;
  76.                                         i++;
  77.                                         fn++;        
  78.                                 }

  79.                                 /* 讀取后綴 */
  80.                                 i = 0;
  81.                                 while(*fn != '\0')
  82.                                 {
  83.                                         file->type[i] = *fn;
  84.                                         i++;
  85.                                         fn++;
  86.                                 }
  87.                                 file++;
  88.                         }//end of 文件屬性判斷呢
  89.                 } //end of while (f_readdir(&dirs, &fileInfo) == FR_OK)//按照順序讀文件夾
  90.         }
  91.         return res;
  92. }
復(fù)制代碼

所有資料51hei提供下載:
FATS.rar (3.08 MB, 下載次數(shù): 63)



作者: sunbird606    時(shí)間: 2019-4-8 22:36
很棒的范例 謝謝

作者: world_all    時(shí)間: 2022-7-5 09:58
正在尋找,fats版本是0.8的
作者: wwb8081    時(shí)間: 2023-3-23 18:59
很棒的范例 謝謝




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 久久免费精品 | 男女操操操 | 亚洲精品视频在线播放 | 中文字幕亚洲综合 | 成人午夜毛片 | 欧美精品久久久久 | 免费看一级片 | 日韩av不卡在线 | 国内自拍xxxx18 | aaaaaa毛片| 91视频免费在线观看 | 一区二区三区国产 | 中文字幕超清在线观看 | 国产精品三级在线 | 狠狠婷婷 | 91在线免费视频观看 | aaa级片| 精品国产乱码一区二区三 | 欧美日韩在线观看一区二区 | 久草网在线观看 | 黄色成人小视频 | 亚洲欧美国产毛片在线 | 日本少妇中文字幕 | 午夜男人影院 | 91小视频在线观看 | 精品国产三级 | 国产视频一区二区在线播放 | 在线免费看黄网站 | 欧美日韩三级 | 青青青在线视频 | 日韩毛片免费 | 国产永久视频 | 中文av字幕 | 亚洲第一黄色 | 青青草视频网站 | 五月婷婷综合激情 | 国产激情久久 | 欧美视频在线观看免费 | 欧美综合在线视频 | 国产欧美一区二区三区视频在线观看 | 丝袜美腿一区二区三区 |