210 lines
4.3 KiB
C
Raw 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 "usbd_core.h"
#include "usbd_desc.h"
#include "usbd_msc.h"
#include "usbd_storage.h"
/*************************************************************************/
//USB<53><42><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(Slave) ʵ<><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
/*************************************************************************/
USBD_HandleTypeDef USBD_Device;
extern PCD_HandleTypeDef hpcd;
extern vu8 USB_STATUS_REG; //USB״̬
extern vu8 bDeviceState; //USB<53><42><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
u8 tbuf[32];
int main(void)
{
u8 offline_cnt=0;
u8 tct=0;
u8 USB_STA;
u8 Divece_STA;
uint64_t CardCap; //SD<53><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Cache_Enable(); //<2F><><EFBFBD><EFBFBD>L1-Cache
Stm32_Clock_Init(160,5,2,4); //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>,400Mhz
HAL_Init(); //<2F><>ʼ<EFBFBD><CABC>HAL<41><4C>
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>
MPU_Memory_Protection(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ش洢<D8B4><E6B4A2><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();
my_mem_init(SRAMIN); //<2F><>ʼ<EFBFBD><CABC><EFBFBD>ڲ<EFBFBD><DAB2>ڴ<EFBFBD><DAB4><EFBFBD>
// my_mem_init(SRAMEX); //<2F><>ʼ<EFBFBD><CABC><EFBFBD>ⲿ<EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD>
my_mem_init(SRAMDTCM); //<2F><>ʼ<EFBFBD><CABC>CCM<43>ڴ<EFBFBD><DAB4><EFBFBD>
Draw_Font16B(16,10,RED," STM32H750 USB Card ");
Draw_Font16B(16,30,BLUE," Ƕ<><C7B6>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ");
Draw_Font16B(16,50,BLUE," mcudev.taobao.com ");
if(W25QXX_ReadID()!=W25Q64)
Draw_Font16B(16,70,RED,"W25Q64 Error!"); //<2F><><EFBFBD><EFBFBD>W25Q128<32><38><EFBFBD><EFBFBD>
else //SPI FLASH <20><><EFBFBD><EFBFBD>
{
Draw_Font16B(16,70,BLUE,"SPI FLASH Size:8MB");
}
if(SD_Init())
Draw_Font16B(16,90,RED,"SD Card Error!"); //<2F><><EFBFBD><EFBFBD>SD<53><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
else //SD <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
CardCap=(uint64_t)(SDCardInfo.LogBlockNbr)*(uint64_t)(SDCardInfo.LogBlockSize); //<2F><><EFBFBD><EFBFBD>SD<53><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
sprintf((char*)tbuf,"SD Card Size: %u MB",CardCap>>20); //<2F><>ʾ<EFBFBD>޷<EFBFBD><DEB7><EFBFBD>ʮ<EFBFBD><CAAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Draw_Font16B(16,90,BLUE,tbuf); //<2F><>ʾ<EFBFBD><EFBFBD><E6B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
USBD_Init(&USBD_Device,&MSC_Desc,0); //<2F><>ʼ<EFBFBD><CABC>USB
USBD_RegisterClass(&USBD_Device,USBD_MSC_CLASS); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
USBD_MSC_RegisterStorage(&USBD_Device,&USBD_DISK_fops); //ΪMSC<53><43><EFBFBD><EFBFBD><EFBFBD>ӻص<D3BB><D8B5><EFBFBD><EFBFBD><EFBFBD>
USBD_Start(&USBD_Device); //<2F><><EFBFBD><EFBFBD>USB
HAL_PWREx_EnableUSBVoltageDetector();
delay_ms(1800);
while(1)
{
if(USB_STA!=USB_STATUS_REG)//״̬<D7B4>ı<EFBFBD><C4B1><EFBFBD>
{
if(USB_STATUS_REG&0x01)//<2F><><EFBFBD><EFBFBD>д
{
Draw_Font16B(16,130,BLUE,"USB Writing...");//<2F><>ʾUSB<53><42><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
if(USB_STATUS_REG&0x02)//<2F><><EFBFBD>ڶ<EFBFBD>
{
Draw_Font16B(16,130,BLUE,"USB Reading...");//<2F><>ʾUSB<53><42><EFBFBD>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
if(USB_STATUS_REG&0x04)
Draw_Font16B(16,170,RED,"USB Write Err ");//<2F><>ʾд<CABE><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
else
Draw_Font16B(16,170,BLUE," ");//<2F><>ʾд<CABE><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
if(USB_STATUS_REG&0x08)
Draw_Font16B(16,190,RED,"USB Read Err ");//<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
else
Draw_Font16B(16,190,BLUE," ");//<2F><>ʾд<CABE><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
USB_STA=USB_STATUS_REG;//<2F><>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
}
if(Divece_STA!=bDeviceState)
{
if(bDeviceState==1)
Draw_Font16B(16,150,BLUE,"USB Connected ");//<2F><>ʾUSB<53><42><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD><EFBFBD>
else
Draw_Font16B(16,150,BLUE,"USB DisConnected ");//<2F><>ʾUSB<53><42><EFBFBD>γ<EFBFBD><CEB3><EFBFBD>
Divece_STA=bDeviceState;
}
tct++;
if(tct==200)
{
tct=0;
LED2_Toggle;//<2F><>ʾϵͳ<CFB5><CDB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if(USB_STATUS_REG&0x10)
{
offline_cnt=0;//USB<53><42><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>offline<6E><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
bDeviceState=1;
}
else//û<>еõ<D0B5><C3B5><EFBFBD>ѯ
{
offline_cnt++;
if(offline_cnt>10)bDeviceState=0;//2s<32><73>û<EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD>߱<EFBFBD><DFB1><EFBFBD>,<2C><><EFBFBD><EFBFBD>USB<53><42><EFBFBD>γ<EFBFBD><CEB3><EFBFBD>
}
USB_STATUS_REG=0;
}
}
}
/*************************************************************************/
//USB<53><42><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(Slave) ʵ<><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
/*************************************************************************/