/*=====================================================================================================*/ int main( void ) { SystemInit(); LED_Config(); KEY_Config(); #if FLASH_RW_U8 Flash_EraseSector(Flash_GetSector(FLASH_SECTOR_6)); Flash_WriteDataU8(FLASH_SECTOR_6, WriteDataU8, 1024); Flash_ReadDataU8(FLASH_SECTOR_6, ReadDataU8, 1024); LED_R = (Cmp_ArrU8(WriteDataU8, ReadDataU8, 1024) == SUCCESS) ? 0 : 1; #endif #if FLASH_RW_U16 Flash_EraseSector(Flash_GetSector(FLASH_SECTOR_6)); Flash_WriteDataU16(FLASH_SECTOR_6, WriteDataU16, 512); Flash_ReadDataU16(FLASH_SECTOR_6, ReadDataU16, 512); LED_G = (Cmp_ArrU16(WriteDataU16, ReadDataU16, 512) == SUCCESS) ? 0 : 1; #endif #if FLASH_RW_U32 Flash_EraseSector(Flash_GetSector(FLASH_SECTOR_6)); Flash_WriteDataU32(FLASH_SECTOR_6, WriteDataU32, 256); Flash_ReadDataU32(FLASH_SECTOR_6, ReadDataU32, 256); LED_B = (Cmp_ArrU32(WriteDataU32, ReadDataU32, 256) == SUCCESS) ? 0 : 1; #endif Delay_10ms(100); while(1) { LED_R = !LED_R; LED_G = !LED_G; LED_B = !LED_B; Delay_10ms(10); } }
/*====================================================================================================*/ void Flash_EraseSectors( u32 EraseSectorStart, u32 EraseSectorEnd ) { FLASH_Status FLASHStatus; EraseSectorStart = Flash_GetSector(EraseSectorStart); EraseSectorEnd = Flash_GetSector(EraseSectorEnd); FLASH_Unlock(); FLASH_ClearFlag(FLASH_FLAG_EOP | FLASH_FLAG_OPERR | FLASH_FLAG_WRPERR | FLASH_FLAG_PGAERR | FLASH_FLAG_PGPERR | FLASH_FLAG_PGSERR); while(EraseSectorStart <= EraseSectorEnd) { FLASHStatus = FLASH_EraseSector(EraseSectorStart, VoltageRange_3); while(FLASHStatus != FLASH_COMPLETE); EraseSectorStart += (EraseSectorStart == FLASH_Sector_11)? 40 : 8; } FLASH_Lock(); }
/*====================================================================================================*/ void Flash_EraseSector( u32 EraseSector ) { FLASH_Status FLASHStatus; EraseSector = Flash_GetSector(EraseSector); FLASH_Unlock(); FLASH_ClearFlag(FLASH_FLAG_EOP | FLASH_FLAG_OPERR | FLASH_FLAG_WRPERR | FLASH_FLAG_PGAERR | FLASH_FLAG_PGPERR | FLASH_FLAG_PGSERR); FLASHStatus = FLASH_EraseSector(EraseSector, VoltageRange_3); while(FLASHStatus != FLASH_COMPLETE); FLASH_Lock(); }