120 lines
2.7 KiB
C
Raw Permalink Normal View History

2021-07-28 13:15:22 +08:00
#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "led.h"
#include "key.h"
#include "LCD.h"
#include "Dis_Picture.h"
#include "Text.h"
#include "GBK_LibDrive.h"
#include "mpu.h"
#include "malloc.h"
#include "w25qxx.h"
#include "sdmmc_sdcard.h"
#include "ff.h"
#include "exfuns.h"
/****************************************************************/
//FATFS ʵ<><CAB5>
//STM32H7<48><37><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>-HAL<41><EFBFBD><E2BAAF><EFBFBD>
//DevEBox <20><>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD>
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>mcudev.taobao.com
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>shop389957290.taobao.com
/****************************************************************/
u8 tbuf[32];
int main(void)
{
u32 total,free;
u8 t=0;
u8 res=0;
Cache_Enable(); //<2F><><EFBFBD><EFBFBD>L1-Cache
HAL_Init(); //<2F><>ʼ<EFBFBD><CABC>HAL<41><4C>
Stm32_Clock_Init(160,5,2,4); //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>,400Mhz
delay_init(400); //<2F><>ʱ<EFBFBD><CAB1>ʼ<EFBFBD><CABC>
uart_init(115200); //<2F><><EFBFBD>ڳ<EFBFBD>ʼ<EFBFBD><CABC>
LED_Init(); //<2F><>ʼ<EFBFBD><CABC>LED
KEY_Init(); //<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
LCD_Init(); //<2F><>ʼ<EFBFBD><CABC>2.0<EFBFBD><EFBFBD> 240x320 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> LCD<43><44>ʾ
GBK_Lib_Init(); //Ӳ<><D3B2>GBK<42>ֿ<EFBFBD><D6BF><EFBFBD>ʼ<EFBFBD><CABC>--(<28><><EFBFBD><EFBFBD>ʹ<EFBFBD>ò<EFBFBD><C3B2><EFBFBD><EFBFBD>ֿ<EFBFBD><D6BF><EFBFBD>Һ<EFBFBD><D2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6B1BE><EFBFBD>˴<EFBFBD><CBB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Σ<EFBFBD><CEA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֿ<EFBFBD><D6BF><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
LCD_Clear(WHITE); //<2F><><EFBFBD><EFBFBD>
// W25QXX_Init(); //<2F><>ʼ<EFBFBD><CABC>W25Q256
my_mem_init(SRAMIN); //<2F><>ʼ<EFBFBD><CABC><EFBFBD>ڲ<EFBFBD><DAB2>ڴ<EFBFBD><DAB4><EFBFBD>(AXI)
//my_mem_init(SRAMEX); //<2F><>ʼ<EFBFBD><CABC><EFBFBD>ⲿ<EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD>(SDRAM)
// my_mem_init(SRAM12); //<2F><>ʼ<EFBFBD><CABC>SRAM12<31>ڴ<EFBFBD><DAB4><EFBFBD>(SRAM1+SRAM2)
// my_mem_init(SRAM4); //<2F><>ʼ<EFBFBD><CABC>SRAM4<4D>ڴ<EFBFBD><DAB4><EFBFBD>(SRAM4)
// my_mem_init(SRAMDTCM); //<2F><>ʼ<EFBFBD><CABC>DTCM<43>ڴ<EFBFBD><DAB4><EFBFBD>(DTCM)
// my_mem_init(SRAMITCM); //<2F><>ʼ<EFBFBD><CABC>ITCM<43>ڴ<EFBFBD><DAB4><EFBFBD>(ITCM)
Draw_Font16B(16,16,RED," STM32H7 FATFS ");
Draw_Font16B(16,32,BLUE," Ƕ<><C7B6>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ");
Draw_Font16B(16,48,BLUE,"mcudev.taobao.com");
while(SD_Init())//<2F><><EFBFBD><EFBFBD><E2B2BB>SD<53><44>
{
Draw_Font16B(16,90,RED,"SD Card Error!");
delay_ms(500);
Draw_Font16B(16,90,RED,"Please Check! ");
delay_ms(500);
LED2_Toggle;//D2<44><32>˸
}
//FTL_Init(); //NAND FLASH FTL<54><4C><EFBFBD><EFBFBD><E3B7A8><EFBFBD><EFBFBD>
//fatfs<66>ļ<EFBFBD>ϵͳ<CFB5><CDB3><EFBFBD>ã<EFBFBD>ȥ<EFBFBD><C8A5><EFBFBD>˶<EFBFBD><CBB6><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD>֧<EFBFBD>֣<EFBFBD><D6A3><EFBFBD><EFBFBD>ڶ<EFBFBD>·<EFBFBD><C2B7>ʶ<EFBFBD><CAB6><EFBFBD>Ĺؼ<C4B9><D8BC>ַ<EFBFBD>ռ<EFBFBD><D5BC>̫<EFBFBD><CCAB><EFBFBD>ռ<D5BC><E4A3AC>ʱ<EFBFBD><CAB1><EFBFBD>Σ<EFBFBD>ֻ֧<D6BB><D6A7>Ӣ<EFBFBD><D3A2>Ŀ¼·<C2BC><C2B7>
exfuns_init(); //Ϊfatfs<66><73><EFBFBD>ر<EFBFBD><D8B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>
f_mount(fs[0],"0:",1); //<2F><><EFBFBD><EFBFBD>SD<53><44>
while(exf_getfree("0",&total,&free)) //<2F>õ<EFBFBD>SD<53><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʣ<EFBFBD><CAA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
Draw_Font16B(16,90,BLUE,"SD Card Fatfs Error!");
delay_ms(200);
LCD_Fill(30,150,240,150+16,WHITE); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
delay_ms(200);
LED2_Toggle;//DS0<53><30>˸
}
Draw_Font16B(16,110,BLUE,"FATFS OK!");
sprintf((char*)tbuf,"SD Total Size: %u MB",total>>10); //<2F><>ʾ<EFBFBD>޷<EFBFBD><DEB7><EFBFBD>ʮ<EFBFBD><CAAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Draw_Font16B(16,110,BLUE,tbuf); //<2F><>ʾSD<53><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MB
sprintf((char*)tbuf,"SD Free Size: %u MB",free>>10); //<2F><>ʾ<EFBFBD>޷<EFBFBD><DEB7><EFBFBD>ʮ<EFBFBD><CAAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Draw_Font16B(16,130,BLUE,tbuf); //<2F><>ʾSD<53><44>ʣ<EFBFBD><CAA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MB
while(1)
{
t++;
delay_ms(200);
LED2_Toggle;//DS0<53><30>˸
}
}