67 lines
1.5 KiB
C
67 lines
1.5 KiB
C
|
/*
|
|||
|
* @Description:
|
|||
|
* @Version: 1.0
|
|||
|
* @Autor: lzc
|
|||
|
* @Date: 2022-09-09 08:31:26
|
|||
|
* @LastEditors: lzc
|
|||
|
* @LastEditTime: 2022-09-13 10:36:57
|
|||
|
*/
|
|||
|
#include "main.h"
|
|||
|
/*<2A><><EFBFBD><EFBFBD><EFBFBD>ķ<EFBFBD>ʽ<EFBFBD><CABD>ͨ<EFBFBD><CDA8>ֱ<EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD><EFBFBD>⺯<EFBFBD><E2BAAF><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD>ȡIO*/
|
|||
|
#define KEY_CAL GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_10) // PB10
|
|||
|
#define KEY_WPS GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_11) // PB11
|
|||
|
char upgrade_flag = 0;
|
|||
|
void check_upgrade_flag(void)
|
|||
|
{
|
|||
|
if ((*(__IO uint32_t *)FLASH_DATA_FLAG_ADDR) == FLASH_DATA_FLAG) // 1010--<><D7BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
upgrade_flag = 0;
|
|||
|
FLASH_Unlock();
|
|||
|
FLASH_EraseSector(FLASH_Sector_2, VoltageRange_3);
|
|||
|
FLASH_ProgramWord(FLASH_DATA_FLAG_ADDR, FLASH_OLD_FLAG); //<2F><><EFBFBD><EFBFBD><EFBFBD>ϳ<EFBFBD><CFB3><EFBFBD>
|
|||
|
// flash_write_version(version);
|
|||
|
FLASH_Lock();
|
|||
|
}
|
|||
|
else if ((*(__IO uint32_t *)FLASH_DATA_FLAG_ADDR) == FLASH_START_FLAG) // 1111--<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
upgrade_flag = 1;
|
|||
|
}
|
|||
|
else if ((*(__IO uint32_t *)FLASH_DATA_FLAG_ADDR) == FLASH_OLD_FLAG) // 0101--<2D><><EFBFBD><EFBFBD><EFBFBD>ϳ<EFBFBD><CFB3><EFBFBD>
|
|||
|
{
|
|||
|
upgrade_flag = 2;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
upgrade_flag = 2;
|
|||
|
}
|
|||
|
}
|
|||
|
// uint32_t value=0x01000002;
|
|||
|
int main(void)
|
|||
|
{
|
|||
|
System_Init();
|
|||
|
check_upgrade_flag();
|
|||
|
// TODO: <20><><EFBFBD>ӻָ<D3BB><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ð<EFBFBD><C3B0><EFBFBD>
|
|||
|
if ((KEY_CAL == RESET) && (KEY_WPS == RESET))
|
|||
|
{
|
|||
|
delay_ms(1000); //<2F><>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD>
|
|||
|
if ((KEY_CAL == RESET) && (KEY_WPS == RESET))
|
|||
|
{
|
|||
|
FLASH_Unlock();
|
|||
|
FLASH_EraseSector(FLASH_Sector_2, VoltageRange_3);
|
|||
|
FLASH_ProgramWord(FLASH_DATA_FLAG_ADDR, FLASH_OLD_FLAG); //<2F><><EFBFBD><EFBFBD><EFBFBD>ϳ<EFBFBD><CFB3><EFBFBD>
|
|||
|
FLASH_Lock();
|
|||
|
upgrade_flag = 2;
|
|||
|
}
|
|||
|
}
|
|||
|
if (upgrade_flag != 0)
|
|||
|
{
|
|||
|
execute_app(); /*ִ<><D6B4><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>*/
|
|||
|
}
|
|||
|
while (1)
|
|||
|
{
|
|||
|
LED_R = 0;
|
|||
|
boot_ReceiveHdl();
|
|||
|
upgrade_menu();
|
|||
|
}
|
|||
|
}
|