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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 8469|回復: 12
打印 上一主題 下一主題
收起左側(cè)

STM32 SDIO+USB+FATFS程序(測試可用)

  [復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:211307 發(fā)表于 2017-6-21 17:29 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式

經(jīng)測試   可以使用


部分stm32單片機源程序預(yù)覽如下:
  1. /******************** (C) COPYRIGHT 2010 STMicroelectronics ********************
  2. * File Name          : main.c
  3. * Author             : MCD Application Team
  4. * Version            : V3.1.1
  5. * Date               : 04/07/2010
  6. * Description        : Mass Storage demo main file
  7. ********************************************************************************
  8. * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
  9. * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
  10. * AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
  11. * INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
  12. * CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
  13. * INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
  14. *******************************************************************************/

  15. /* Includes ------------------------------------------------------------------*/
  16. #include "main.h"        

  17. #include "usb_lib.h"
  18. #include "hw_config.h"
  19. #include "usb_pwr.h"
  20. #include "sdcard.h"
  21. //#include "lcd.h"
  22. #include "ff.h"        
  23. //#include "pic.h"
  24. //#include "book.h"
  25. #include <stdio.h>
  26. #include <string.h>

  27. static vu32 TimingDelay = 0;

  28. extern SD_CardInfo SDCardInfo;
  29. extern SD_Error Status ;
  30. extern u8 ASCII_Table[95][16];

  31. FATFS fs;
  32. FIL fsrc, fdst;      // file objects
  33. BYTE buffer[1024]; // file copy buffer
  34. FRESULT res;         // FatFs function common result code
  35. UINT br, bw;         // File R/W count
  36. BYTE buff_filename[15][20];        //最多只能讀9個文件,保存9個文件名,文件名采用短文件名,最多13個字符
  37. extern uint16_t MAL_Init (uint8_t lun);

  38. /* Private typedef -----------------------------------------------------------*/
  39. /* Private define ------------------------------------------------------------*/
  40. /* Private macro -------------------------------------------------------------*/
  41. /* Private variables ---------------------------------------------------------*/
  42. /* Extern variables ----------------------------------------------------------*/
  43. /* Private function prototypes -----------------------------------------------*/
  44. /* Private functions ---------------------------------------------------------*/

  45. //#define Lcd_On  GPIO_SetBits(GPIOB,GPIO_Pin_5);
  46. //#define Lcd_Off GPIO_ResetBits(GPIOB,GPIO_Pin_5);

  47. //#define Pow_On  GPIO_SetBits(GPIOD,GPIO_Pin_3);
  48. //#define Pow_Off GPIO_ResetBits(GPIOD,GPIO_Pin_3);

  49. //#define Set_Rst  GPIO_SetBits(GPIOF,GPIO_Pin_11);
  50. //#define Clr_Rst  GPIO_ResetBits(GPIOF,GPIO_Pin_11);

  51. /* Private function prototypes -----------------------------------------------*/
  52. /* Private functions ---------------------------------------------------------*/

  53. u8 stringcopy(BYTE *buff_to,BYTE *buff_from)
  54. {
  55.   u8 i=0;
  56.   for(i=0;i<13;i++)
  57.   buff_to[i] = buff_from[i];
  58.   return 1;
  59. }

  60. void ReadSDFile(void)
  61. {
  62. //  FIL file;
  63.   FILINFO finfo;
  64.   DIR dirs;
  65.   int i_name=0;
  66. //  char *fn;
  67.   XCHAR path[50]={"picture"};
  68.   disk_initialize(0);
  69.   f_mount(0, &fs);
  70.   res =  f_opendir(&dirs, path);
  71.   if (res == FR_OK)
  72.   {
  73.     while (f_readdir(&dirs, &finfo) == FR_OK)
  74.         {
  75.           if (finfo.fattrib & AM_ARC)
  76.       {
  77.         if(!finfo.fname[0])          //文件名不為空,如果為空,則表明該目錄下面的文件已經(jīng)讀完了
  78.           break;         
  79.         //res = f_open(&fsrc, finfo.lfname, FA_OPEN_EXISTING | FA_READ);
  80.                 stringcopy(buff_filename[i_name], (BYTE*)finfo.fname);
  81.                 i_name++;
  82. //        res = f_read(&fsrc, &buffer, 50, &br);
  83.         f_close(&fsrc);
  84.           }
  85.         }
  86.   }
  87. f_mount(0,NULL);
  88. }
  89. void ReadSDFiles(void)
  90. {
  91.     disk_initialize(0);
  92.         f_mount(0, &fs);
  93.         res = f_open(&fsrc,"picture/test.txt",FA_OPEN_EXISTING | FA_READ);      
  94.         res = f_read(&fsrc, &buffer,9, &br);
  95.         f_close(&fsrc);
  96.         f_mount(0,NULL);
  97. }

  98. void WriteSDFile(void)
  99. {
  100.   FIL file;
  101. // FILINFO finfo;
  102.   //DIR dirs;
  103. // int i_name=0;
  104. //char *fn;
  105. //XCHAR path[50]={"picture"};
  106.   disk_initialize(0);
  107.   res = f_mount(0, &fs);
  108.    res = f_open(&file, "1055.txt", FA_CREATE_ALWAYS | FA_WRITE);  //創(chuàng)建一個新的文件
  109.         res = f_lseek(&file,file.fsize);
  110.          f_printf (&file,"20100508sdsd看看看%s\r\n" );
  111.            f_close(&file);
  112.    f_mount(0, NULL);
  113. }
  114. /**************************************************************************
  115. *sd init and config
  116. **************************************************************************/
  117. SD_Error SD_InitAndConfig(void)
  118. {
  119. /////////////////////////////////////////////////////////////////////
  120.   //////// SDCARD Initialisation //////////////////////////////////////
  121.   /////////////////Section adapted from ST example/////////////////////
  122.   
  123.   /*-------------------------- SD Init ----------------------------- */
  124.   Status = SD_Init();
  125.   
  126.   if (Status == SD_OK)
  127.   {        
  128.     /*----------------- Read CSD/CID MSD registers ------------------*/
  129.     Status = SD_GetCardInfo(&SDCardInfo);
  130.   }
  131.   if (Status == SD_OK)
  132.   {
  133.         /*----------------- Select Card --------------------------------*/
  134.     Status = SD_SelectDeselect((u32) (SDCardInfo.RCA << 16));
  135.   }
  136.   if (Status == SD_OK)
  137.   {
  138.     Status = SD_EnableWideBusOperation(SDIO_BusWide_4b);
  139.   }
  140.   /* Set Device Transfer Mode to DMA */
  141.   if (Status == SD_OK)
  142.   {
  143.     Status = SD_SetDeviceMode(SD_DMA_MODE);//oet
  144. //   Status = SD_SetDeviceMode(SD_POLLING_MODE);
  145. //    Status = SD_SetDeviceMode(SD_INTERRUPT_MODE);
  146.   }         
  147. return Status;
  148. }
  149. /*******************************************************
  150. *Usb Connect
  151. *******************************************************/
  152. void UsbConnect(void)
  153. {
  154.         USB_Cable_Config(ENABLE);
  155.         USB_Init();
  156.         while (bDeviceState != CONFIGURED);
  157. }
  158. /*******************************************************
  159. *                                         Delay ms us
  160. *****************************************************/
  161. void delay_us(unsigned long i)
  162. {     
  163.     while( i--)
  164.        {        
  165.         
  166.         }
  167. }                  

  168. //    毫秒級延時函數(shù)         
  169. void delay_ms(unsigned long time)
  170.          {
  171.           while(time--)
  172.                     {        
  173.                    delay_us(1000);
  174.                   
  175.                   }
  176.          }
  177. /*******************************************************************************
  178. * Function Name  : Delay
  179. * Description    : Inserts a delay time.
  180. * Input          : nCount: specifies the delay time length (time base 10 ms).
  181. * Output         : None
  182. * Return         : None
  183. *******************************************************************************/
  184. void Delay(u32 nCount)
  185. {
  186.   delay_ms(nCount*10);
  187. }
  188. /*******************************************************************************
  189. * Function Name  : main.
  190. * Description    : Main routine.
  191. * Input          : None.
  192. * Output         : None.
  193. * Return         : None.
  194. *******************************************************************************/
  195. int main(void)
  196. {
  197.   Set_System();
  198.   Set_USBClock();
  199.   USB_Interrupts_Config();
  200.   //Pow_On;
  201.   SD_InitAndConfig();
  202.   USB_Init();
  203.   //Set_Rst;
  204. // Delay(20);
  205. //Clr_Rst;
  206. // Delay(20);
  207. // Set_Rst;
  208. // Delay(20);
  209.   
  210. // STM3210E_LCD_Init();
  211. // LCD_Clear(Black);
  212.   
  213. // Lcd_On;
  214. // LCD_SetBackColor(Black);
  215.   //LCD_SetTextColor(Yellow);   

  216. // ReadSDFile();                        
  217.    WriteSDFile();
  218.   //delay_ms(500);
  219.   
  220. // LCD_DisplayStringLine(Line0,"File read success");
  221. // LCD_DisplayStringLine(Line1,buff_filename[0]);
  222. // LCD_DisplayStringLine(Line2,buff_filename[1]);
  223. //
  224. // LCD_DisplayStringLine(Line3,"                  ");
  225. // LCD_DisplayStringLine(Line4,"                  ");
  226.   
  227. // LCD_DisplayStringLine(Line3,buff_filename[2]);
  228. // LCD_DisplayStringLine(Line4,buff_filename[3]);  

  229. // LCD_DisplayStringLine(Line5,buff_filename[4]);
  230. //  LCD_DisplayStringLine(Line6,buff_filename[5]);
  231. ……………………

  232. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
M3_SDIO USB FATFS.rar (734.01 KB, 下載次數(shù): 176)




評分

參與人數(shù) 2黑幣 +55 收起 理由
mantoufenfei + 5
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏11 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:103048 發(fā)表于 2018-2-8 14:18 | 只看該作者
謝謝分享
回復

使用道具 舉報

板凳
ID:103048 發(fā)表于 2018-2-8 14:19 | 只看該作者
沒黑幣,下不了呢。
回復

使用道具 舉報

地板
ID:367374 發(fā)表于 2018-7-22 22:24 | 只看該作者
謝謝樓主
回復

使用道具 舉報

5#
ID:367374 發(fā)表于 2018-7-22 22:25 | 只看該作者
謝謝分享,最近剛好想要將一些數(shù)據(jù)通過本地存儲和GPRS放在兩個地方,感謝感謝
回復

使用道具 舉報

6#
ID:86450 發(fā)表于 2018-9-27 10:26 | 只看該作者
謝謝分享
回復

使用道具 舉報

7#
ID:79006 發(fā)表于 2019-3-28 10:06 | 只看該作者
感謝分享
回復

使用道具 舉報

8#
ID:410139 發(fā)表于 2019-3-28 20:43 | 只看該作者
好東西,收藏了,謝謝樓主
回復

使用道具 舉報

9#
ID:471025 發(fā)表于 2020-2-22 10:30 | 只看該作者
具體是哪個型號?怎么提示找不到單片機型號?
回復

使用道具 舉報

10#
ID:818895 發(fā)表于 2021-7-7 16:47 | 只看該作者
FATFS使用是的哪個本版的呢?想最新本版的使用。
回復

使用道具 舉報

11#
ID:971132 發(fā)表于 2022-1-17 08:17 | 只看該作者
正在學習FATFS,好資料,先收藏了,謝謝
回復

使用道具 舉報

12#
ID:1044442 發(fā)表于 2023-8-11 10:26 | 只看該作者
適用于103
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 91视频免费在观看 | 欧美日韩亚洲系列 | 在线观看视频一区 | 在线国产一区二区 | 久久av影院 | 免费在线观看一区二区 | 国产1区2区3区 | 美女拍拍拍网站 | 亚洲高清在线免费观看 | 在线一区二区三区 | 日韩成人精品一区 | 韩日一区 | 欧美亚洲日本 | 婷婷成人在线 | 日韩在线观看视频一区 | 99精品久久久| 国产一区91在线 | 国产亚洲人成a在线v网站 | 999久久久| 精品一区二区av | 日韩免费av一区二区 | 久久久久国产 | 伊人伊成久久人综合网站 | 成人免费淫片aa视频免费 | 日日骚网 | 亚洲国产成人精品女人久久久 | 欧美精品一区免费 | www.一区二区三区.com | 2021天天干夜夜爽 | 欧美激情精品久久久久久 | 少妇一区二区三区 | 中文字幕一区二区三区四区五区 | 日韩成人在线免费观看 | 91一区二区 | 毛片com | 欧美精品区 | 亚洲精品在线视频 | 亚洲精品小视频在线观看 | 在线观看成人免费视频 | 成年人视频在线免费观看 | 久在线 |