我用探索板烧写例程53标准库函数,实验板可以用,但是移植到自己的板子时,下面是例程u8 USH_User_App(void){
u32 total,free;
u8 res=0;
Show_Str(30,140,200,16,"设备连接成功!.",16,0);
res=exf_getfree("2:",&total,&free);
if(res==0)
{
POINT_COLOR=BLUE;//设置字体为蓝 {MOD}
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盘总容量 MB
LCD_ShowNum(174,200,free>>10,5,16);
}
while(HCD_IsDeviceConnected(&USB_OTG_Core))//设备连接成功
{
LED1=!LED1;
delay_ms(200);
}
POINT_COLOR=RED;//设置字体为红 {MOD}
Show_Str(30,140,200,16,"设备连接中...",16,0);
LCD_Fill(30,160,239,220,WHITE);
return res;
}
int main(void)
{
u8 t;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2
delay_init(168); //初始化延时函数
uart_init(115200); //初始化串口波特率为115200
LED_Init(); //初始化与LED连接的硬件接口
KEY_Init(); //按键
LCD_Init(); //初始化LCD
W25QXX_Init(); //SPI FLASH初始化
usmart_dev.init(84); //初始化USMART
my_mem_init(SRAMIN); //初始化内部内存池
exfuns_init(); //为fatfs相关变量申请内存
piclib_init(); //初始化画图
f_mount(fs[0],"0:",1); //挂载SD卡
f_mount(fs[1],"1:",1); //挂载SD卡
f_mount(fs[2],"2:",1); //挂载U盘
POINT_COLOR=RED;
while(font_init()) //检查字库
{
LCD_ShowString(60,50,200,16,16,"Font Error!");
delay_ms(200);
LCD_Fill(60,50,240,66,WHITE);//清除显示
delay_ms(200);
}
Show_Str(30,50,200,16,"探索者STM32F407开发板",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,"正点原子@ALIENTEK",16,0);
Show_Str(30,140,200,16,"设备连接中...",16,0);
//初始化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;
}
}
}
由于自己的板子,没有字库
程序去掉了while(font_init()) //检查字库 {
LCD_ShowString(60,50,200,16,16,"Font Error!");
delay_ms(200);
LCD_Fill(60,50,240,66,WHITE);//清除显示
delay_ms(200);
}
试验结果就是,U盘插入后无反应还是LED0闪烁,如果复位下,U盘还在上,就可以识别U盘,LED1闪烁,此时拔出U盘,还是LED1闪烁。
求助。。
一周热门 更多>