183 lines
2.8 KiB
C
183 lines
2.8 KiB
C
|
|
#include "sys.h"
|
|||
|
|
#include "usart.h"
|
|||
|
|
#include "delay.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 "w25qxx.h"
|
|||
|
|
|
|||
|
|
#include "NORFLASH.h"
|
|||
|
|
|
|||
|
|
/**********************************************************************/
|
|||
|
|
|
|||
|
|
//W25Q64(QSPI<50><49><EFBFBD><EFBFBD>) <20><>дʵ<D0B4><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
|
|||
|
|
|
|||
|
|
/**********************************************************************/
|
|||
|
|
|
|||
|
|
|
|||
|
|
//Ҫд<D2AA>뵽W25Q64<36><34><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
const u8 TEXT_Buffer[24]={"W25Q64 Check: OK OK OK"};
|
|||
|
|
u8 SIZE=24;
|
|||
|
|
u32 FlashAddr=0; //<2F><><EFBFBD>Ե<EFBFBD>ַ<EFBFBD><D6B7>0
|
|||
|
|
u8 datatemp[32];
|
|||
|
|
|
|||
|
|
|
|||
|
|
u8 key;
|
|||
|
|
u16 i=0;
|
|||
|
|
|
|||
|
|
|
|||
|
|
int main(void)
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
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ʱ<44><CAB1>
|
|||
|
|
KEY_Init();
|
|||
|
|
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>
|
|||
|
|
|
|||
|
|
|
|||
|
|
Draw_Font16B(16,16,RED, " STM32H7 W25Q64(QSPI) ");
|
|||
|
|
Draw_Font16B(16,32,BLUE," Ƕ<><C7B6>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ");
|
|||
|
|
Draw_Font16B(16,48,BLUE," mcudev.taobao.com");
|
|||
|
|
Draw_Font16B(16,64,RED, " K1:Write K2:Read");
|
|||
|
|
|
|||
|
|
NORFLASH_Init(); //NORFLASH(W25Q64)<29><>ʼ<EFBFBD><CABC>
|
|||
|
|
|
|||
|
|
|
|||
|
|
while(NORFLASH_ReadID()!=W25Q64) //<2F><><EFBFBD>ⲻ<EFBFBD><E2B2BB>W25Q64
|
|||
|
|
{
|
|||
|
|
Draw_Font16B(16,96,BLUE,"W25Q64 Check Failed!");
|
|||
|
|
delay_ms(500);
|
|||
|
|
Draw_Font16B(16,96,BLUE,"Please Check! ");
|
|||
|
|
delay_ms(500);
|
|||
|
|
LED2_Toggle; //LED2 <20><>˸
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
Draw_Font16B(16,96,BLUE,"W25Q64 Ready!");
|
|||
|
|
|
|||
|
|
|
|||
|
|
while(1)
|
|||
|
|
{
|
|||
|
|
key=KEY_Scan(0);
|
|||
|
|
if(key==KEY1_PRES)//KEY1<59><31><EFBFBD><EFBFBD>,д<><D0B4>W25Q64
|
|||
|
|
{
|
|||
|
|
LCD_Fill(0,112,239,319,WHITE);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
Draw_Font16B(16,112,BLUE,"Start Write W25Q64....");
|
|||
|
|
|
|||
|
|
NORFLASH_Write((u8*)TEXT_Buffer,FlashAddr,SIZE); //<2F><>0<EFBFBD><30><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>ʼ,д<><D0B4>SIZE<5A><45><EFBFBD>ȵ<EFBFBD><C8B5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
Draw_Font16B(16,112,BLUE,"W25Q64 Write Finished!"); //<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
}
|
|||
|
|
if(key==KEY2_PRES)//KEY0<59><30><EFBFBD><EFBFBD>,<2C><>ȡ<EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
|
|||
|
|
{
|
|||
|
|
Draw_Font16B(16,112,BLUE,"Start Read W25Q64.... ");
|
|||
|
|
|
|||
|
|
NORFLASH_Read(datatemp,FlashAddr,SIZE); //<2F><>0<EFBFBD><30><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>ʼ,<2C><><EFBFBD><EFBFBD>SIZE<5A><45><EFBFBD>ֽ<EFBFBD>
|
|||
|
|
|
|||
|
|
Draw_Font16B(16,112,BLUE,"The Data Readed Is: "); //<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
Draw_Font16B(16,128,RED,datatemp); //<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
i++;
|
|||
|
|
|
|||
|
|
delay_ms(10);
|
|||
|
|
|
|||
|
|
if(i==20)
|
|||
|
|
{
|
|||
|
|
LED2_Toggle; //LED2 <20><>˸
|
|||
|
|
i=0;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
/**********************************************************************/
|
|||
|
|
|
|||
|
|
//QSPI ʵ<><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
|
|||
|
|
|
|||
|
|
/**********************************************************************/
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|