Job_SignsPads/STM32/Code/STM32-IAP/USER/main.c

67 lines
1.5 KiB
C
Raw Normal View History

2025-04-22 02:29:37 +00:00
/*
* @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();
}
}