找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2162|回复: 0
收起左侧

STM32F4 USB U盘(Host)源程序

[复制链接]
ID:880136 发表于 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. * 文件简述:U盘OTG                                                               *
  17. * 创建日期:2017.08.30                                                           *
  18. * 版    本:V1.0                                                                 *
  19. * 作    者:Clever                                                               *
  20. * 说    明:读取U盘总容量                                                        *
  21. * 声    明:本例程代码仅用于学习参考                                             *
  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,"设备连接成功!.");         
  32.         res=getUfree_volume("2:",&total,&free);
  33.         if(res==0)
  34.         {
  35.                 BRUSH_COLOR=BLUE;//设置字体为蓝色          
  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盘总容量 MB
  40.                 LCD_DisplayNum(174,200,free>>10,5,16,0);       
  41.         }

  42.         while(HCD_IsDeviceConnected(&USB_OTG_Core))//设备连接成功
  43.         {       
  44.                 LED1=!LED1;
  45.                 delay_ms(200);
  46.         }
  47.         BRUSH_COLOR=RED;//设置字体为红色          
  48.         LCD_DisplayHZstr(30,140,16,"设备连接中...");
  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盘文件系统       
  56.        
  57.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2
  58.         delay_init();        //初始化延时函数
  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); //初始化内部内存池       

  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盘实验");                                                     
  78.         LCD_DisplayHZstr(30,110,16,"2018年4月28日");                     
  79.         LCD_DisplayHZstr(30,140,16,"设备连接中...");                                        
  80.         //初始化USB主机
  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. }
复制代码


USB U盘(Host).7z

851.77 KB, 下载次数: 58, 下载积分: 黑币 -5

回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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