stm32f407 探索板

2019-07-20 02:02发布

我用探索板烧写例程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闪烁。
求助。。



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。