找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 2551|回復(fù): 0
收起左側(cè)

STM32F4 USB U盤(Host)源程序

[復(fù)制鏈接]
ID:880136 發(fā)表于 2021-3-30 16:30 | 顯示全部樓層 |閱讀模式
  1. #include "led.h"
  2. #include "lcd.h"
  3. #include "key.h"  
  4. #include "sram.h"   
  5. #include "malloc.h"
  6. #include "w25qxx.h"  
  7. #include "usart1.h"
  8. #include "tfcard_sdio.h"
  9. #include "ff.h"   
  10. #include "updatefont.h"
  11. #include "showhz.h"       
  12. #include "usbhost_user.h"


  13. /*********************************************************************************
  14. **********************************************************************************
  15. * 文件名稱: 例程21 U盤OTG main.c                                                 *
  16. * 文件簡(jiǎn)述:U盤OTG                                                               *
  17. * 創(chuàng)建日期:2017.08.30                                                           *
  18. * 版    本:V1.0                                                                 *
  19. * 作    者:Clever                                                               *
  20. * 說    明:讀取U盤總?cè)萘?nbsp;                                                       *
  21. * 聲    明:本例程代碼僅用于學(xué)習(xí)參考                                             *
  22. **********************************************************************************
  23. *********************************************************************************/  


  24. USBH_HOST  USB_Host;
  25. USB_OTG_CORE_HANDLE  USB_OTG_Core;



  26. //返回值:0,正常    1,有問題
  27. u8 USH_User_App(void)
  28. {
  29.         u32 total,free;
  30.         u8 res=0;
  31.         LCD_DisplayHZstr(30,140,16,"設(shè)備連接成功!.");         
  32.         res=getUfree_volume("2:",&total,&free);
  33.         if(res==0)
  34.         {
  35.                 BRUSH_COLOR=BLUE;//設(shè)置字體為藍(lán)色          
  36.                 LCD_DisplayString(30,160,16,"FATFS OK!");       
  37.                 LCD_DisplayString(30,180,16,"U Disk Total Size:     MB");         
  38.                 LCD_DisplayString(30,200,16,"U Disk  Free Size:     MB");             
  39.                 LCD_DisplayNum(174,180,total>>10,5,16,0); //顯示U盤總?cè)萘?MB
  40.                 LCD_DisplayNum(174,200,free>>10,5,16,0);       
  41.         }

  42.         while(HCD_IsDeviceConnected(&USB_OTG_Core))//設(shè)備連接成功
  43.         {       
  44.                 LED1=!LED1;
  45.                 delay_ms(200);
  46.         }
  47.         BRUSH_COLOR=RED;//設(shè)置字體為紅色          
  48.         LCD_DisplayHZstr(30,140,16,"設(shè)備連接中...");
  49.         LCD_Fill_onecolor(30,160,239,220,WHITE);
  50.         return res;
  51. }


  52. int main(void)
  53. {        
  54.         u8 t;
  55.         FATFS *fsUP;  //U盤文件系統(tǒng)       
  56.        
  57.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設(shè)置系統(tǒng)中斷優(yōu)先級(jí)分組2
  58.         delay_init();        //初始化延時(shí)函數(shù)
  59.         uart1_init(9600);                  //初始化串口波特率為9600   
  60.         LED_Init();                                   //初始化與LED連接的硬件接口
  61.         KEY_Init();                                   //按鍵
  62.   LCD_Init();                                   //初始化LCD
  63.         W25QXX_Init();                         //SPI FLASH初始化
  64.         Memory_Init(INSRAM); //初始化內(nèi)部?jī)?nèi)存池       

  65.         fsUP=(FATFS*)Mem_malloc(INSRAM,sizeof(FATFS));       

  66.   f_mount(fsUP,"2:",1);         //掛載U盤
  67.         BRUSH_COLOR=RED;   

  68.         while(font_init())                                 //檢查字庫
  69.         {            
  70.                 LCD_DisplayString(60,50,16,"Font Error!");
  71.                 delay_ms(200);                                  
  72.                 LCD_Fill_onecolor(60,50,240,66,WHITE);//清除顯示             
  73.                 delay_ms(200);                                  
  74.         }
  75.   LCD_DisplayString(10,10,24,"Illuminati STM32F4");       
  76.   LCD_DisplayString(10,40,16,"Author:Clever");                                     
  77.         LCD_DisplayHZstr(30,80,24,"21 USB U盤實(shí)驗(yàn)");                                                     
  78.         LCD_DisplayHZstr(30,110,16,"2018年4月28日");                     
  79.         LCD_DisplayHZstr(30,140,16,"設(shè)備連接中...");                                        
  80.         //初始化USB主機(jī)
  81.         USBH_Init(&USB_OTG_Core,USB_OTG_FS_CORE_ID,&USB_Host,&USBH_MSC_cb,&USR_Callbacks);  
  82.         while(1)
  83.         {
  84.                 USBH_Process(&USB_OTG_Core, &USB_Host);
  85.                 delay_ms(1);
  86.                 t++;
  87.                 if(t==200)
  88.                 {
  89.                         LED0=!LED0;
  90.                         t=0;
  91.                 }
  92.         }       
  93. }
復(fù)制代碼


USB U盤(Host).7z

851.77 KB, 下載次數(shù): 58, 下載積分: 黑幣 -5

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表