STMG0B1RCT6擦除Flash遇到单片机直接跑死,并无法连接。

1.现象

在使用擦除函数时,碰到直接跑死的情况,此时单片机的自定义的运行灯不闪烁,甚至使用STlink无法再次连接,现象有点像芯片被锁。

代码如下:

if(App_ExtCanBootErasePage(FW_BACKUP_START_ADDRESS, FW_BACKUP_END_ADDRESS) == HAL_OK)
{
    s_u8FwUpFlag = 0;
}
else
{
    s_u8FwUpFlag = 1;
}

HAL_StatusTypeDef App_ExtCanBootErasePage(u32 StartPageAddr, u32 EndPageAddr)
{
        u32 i;
    u32 FirstPage = 0, NbOfPages = 0, BankNumber = 0;
    u32 PAGEError = 0;
    HAL_StatusTypeDef FLASHStatus = HAL_OK;
    FLASH_EraseInitTypeDef EraseInitStruct;
    //FLASH_Unlock();
    HAL_FLASH_Unlock();
    __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_OPTVERR);
    /* Get the 1st page to erase */
    FirstPage = Lib_CommonFunctionFlashGetPage(StartPageAddr);
    /* Get the number of pages to erase from 1st page */
    NbOfPages = Lib_Commo

你可能感兴趣的:(单片机,嵌入式硬件,stm32)