中级会员
 
- 积分
- 370
- 金钱
- 370
- 注册时间
- 2017-8-3
- 在线时间
- 38 小时
|

楼主 |
发表于 2018-8-19 15:00:56
|
显示全部楼层
本帖最后由 xie112 于 2018-8-19 15:02 编辑
#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "led.h"
#include "lcd.h"
#include "key.h"
#include "usmart.h"
#include "sram.h"
#include "malloc.h"
#include "w25qxx.h"
#include "sdio_sdcard.h"
#include "ff.h"
#include "exfuns.h"
#include "fontupd.h"
#include "text.h"
#include "piclib.h"
#include "usbh_usr.h"
//ALIENTEK ì½Ë÷ÕßSTM32F407¿a·¢°å êμÑé53
//USB UÅì êμÑé-¿aoˉêy°æ±¾
//¼¼êõÖ§3Ö£owww.openedv.com
//ìÔ±|μêÆì£ohttp://eboard.taobao.com
//1ãÖYêDDÇòíμç×ó¿Æ¼¼óDÏT1«Ë¾
//×÷ÕߣoÕyμãÔ-×ó @ALIENTEK
USBH_HOST USB_Host;
USB_OTG_CORE_HANDLE USB_OTG_Core;
FIL *fsrc;
u8 *fatbuff;
const u8 write_test[] = "write U-Disk OK!\n";
const u8 path_name[] = "2:/test.txt";
//óû§2aêÔÖ÷3ìDò
//·μ»ØÖμ:0,Õy3£
// 1,óDÎêìa
//void WriteDatatosd(u8 *tmp_name,u8 *buffertemp,u8 datalen)
//{
// u8 res = 1;
// UINT bw;
// //fsrc =(FIL*)mymalloc(SRAMIN,sizeof(FIL));
// res = f_open(file , (char*)tmp_name, FA_READ | FA_WRITE);
// printf("res = %d ", res);
// if(res==0)
// {
// res = f_lseek(file, f_size(file));
// res = f_write(file, buffertemp, datalen, &bw);
// if(res == 0)
// printf("write usb is success! \n");
// }
// else
// {
// f_close(file);
// delay_ms(1000);
// res = f_open(file, (char*)tmp_name, FA_OPEN_ALWAYS | FA_WRITE);
// if(res==FR_OK)
// {
// res = f_lseek(file, f_size(file));
// res = f_write(file, buffertemp,datalen, &bw);
// delay_ms(500);
// }
// }
// //myfree(SRAMIN, file);
// f_close(file);
//}
void write_data_to_usb(u8* data_buffer, u8 data_len)
{
u8 res;
UINT bw;
//u32 file_size;
fsrc =(FIL*)mymalloc(SRAMIN,sizeof(FIL));
res = f_open(fsrc, "2:/test.txt" , FA_OPEN_ALWAYS| FA_READ | FA_WRITE);
if(res == 0)
{
f_lseek (fsrc , f_size(fsrc));
f_write(fsrc , data_buffer , data_len, &bw);
printf("data_buffer = %s\n", data_buffer);
printf("data_len : %d\n", sizeof(data_buffer));//êy×é×÷Îa2Îêy»áíË»ˉ3éÎaÖ¸Õë¡£»
printf("written data : %d\n", bw);
delay_ms (500);
}
myfree(SRAMIN, file);
f_close(fsrc);
}
//óû§2aêÔÖ÷3ìDò
//·μ»ØÖμ:0,Õy3£
// 1,óDÎêìa
u8 USH_User_App(void)
{
u32 total,free;
u8 res=0;
Show_Str(30,140,200,16,"é豸ᬽó3é1|!.",16,0);
res=exf_getfree("2:",&total,&free);
if(res==0)
{
POINT_COLOR=BLUE;//éèÖÃ×ÖìåÎaà¶é«
LCD_ShowString(30,160,200,16,16,"FATFS OK!");
LCD_ShowString(30,180,200,16,16,"U Disk Total Size: MB");
LCD_ShowString(30,200,200,16,16,"U Disk Free Size: MB");
LCD_ShowNum(174,180,total>>10,5,16); //ÏÔê¾UÅì×üèYá¿ MB
LCD_ShowNum(174,200,free>>10,5,16);
}
while(HCD_IsDeviceConnected(&USB_OTG_Core))//é豸ᬽó3é1|
{
LED1=!LED1;
delay_ms(200);
write_data_to_usb( (u8*)write_test, sizeof(write_test));
}
POINT_COLOR=RED;//éèÖÃ×ÖìåÎaoìé«
Show_Str(30,140,200,16,"é豸ᬽóÖD...",16,0);
LCD_Fill(30,160,239,220,WHITE);
return res;
}
int main(void)
{
u8 t;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//éèÖÃÏμí3ÖD¶ÏóÅÏè¼¶·Ö×é2
delay_init(168); //3õê¼»ˉÑóê±oˉêy
uart_init(115200); //3õê¼»ˉ′®¿ú2¨ìØÂêÎa115200
LED_Init(); //3õê¼»ˉóëLEDᬽóμÄó2¼t½ó¿ú
KEY_Init(); //°′¼ü
LCD_Init(); //3õê¼»ˉLCD
W25QXX_Init(); //SPI FLASH3õê¼»ˉ
usmart_dev.init(84); //3õê¼»ˉUSMART
my_mem_init(SRAMIN); //3õê¼»ˉÄú2¿Äú′æ3Ø
exfuns_init(); //ÎafatfsÏà1رäá¿éêÇëÄú′æ
piclib_init(); //3õê¼»ˉ»-í¼
f_mount(fs[0],"0:",1); //1òÔØSD¿¨
f_mount(fs[1],"1:",1); //1òÔØSD¿¨
f_mount(fs[2],"2:",1); //1òÔØUÅì
POINT_COLOR=RED;
while(font_init()) //¼ì2é×Ö¿a
{
LCD_ShowString(60,50,200,16,16,"Font Error!");
delay_ms(200);
LCD_Fill(60,50,240,66,WHITE);//Çå3yÏÔê¾
delay_ms(200);
}
Show_Str(30,50,200,16,"ì½Ë÷ÕßSTM32F407¿a·¢°å",16,0);
Show_Str(30,70,200,16,"USB UÅìêμÑé",16,0);
Show_Str(30,90,200,16,"2014Äê7ÔÂ22èÕ",16,0);
Show_Str(30,110,200,16,"ÕyμãÔ-×ó@ALIENTEK",16,0);
Show_Str(30,140,200,16,"é豸ᬽóÖD...",16,0);
//3õê¼»ˉUSBÖ÷»ú
USBH_Init(&USB_OTG_Core,USB_OTG_FS_CORE_ID,&USB_Host,&USBH_MSC_cb,&USR_Callbacks);
while(1)
{
USBH_Process(&USB_OTG_Core, &USB_Host);
delay_ms(1);
t++;
if(t==200)
{
LED0=!LED0;
t=0;
}
}
}
|
|