2015-08-31 2 views
0

У меня возникла проблема с очисткой flash-панели stm32f429 после создания окна с использованием библиотеки stemwin. Если я использую ниже код, вспышка будет очищена правильно:Очистка flash-обнаружения stm32f4 программно

EraseInitStruct.TypeErase = FLASH_TYPEERASE_SECTORS; 
EraseInitStruct.VoltageRange = FLASH_VOLTAGE_RANGE_3; 
EraseInitStruct.Sector = FLASH_SECTOR_22; 
EraseInitStruct.NbSectors = 1; 
HAL_FLASH_Unlock(); 
uint32_t sectorError = 0; 
if(HAL_FLASHEx_Erase(&EraseInitStruct,&sectorError)!=HAL_OK) 
{ 
    return HAL_FLASH_GetError(); 
} 

HAL_FLASH_Lock(); 

CreateWindow(); 

Но если я приношу CreateWindow() для верхней части коды, вспышка не будет очищена. Вот функция CreateWindow():

WM_HWIN CreateWindow(void) 
{ 
hWin = GUI_CreateDialogBox(_aDialogCreate, GUI_COUNTOF(_aDialogCreate),  _cbDialog, WM_HBKWIN, 0, 0); 

hMultiPage = MULTIPAGE_CreateEx(0, -20, 320, 260, WM_GetClientWindow(hWin), WM_CF_SHOW, 0, 0); 
MULTIPAGE_SetSkin(hMultiPage,MULTIPAGE_SKIN_FLEX); 

hPage1 = GUI_CreateDialogBox(_aDialogCreate2, GUI_COUNTOF(_aDialogCreate2), _cbDialogPage1,  WM_UNATTACHED, 0, 0); 
MULTIPAGE_AddPage(hMultiPage, hPage1, "Settings"); 

hPage2 = GUI_CreateDialogBox(_aDialogCreate3, GUI_COUNTOF(_aDialogCreate3), _cbDialogPage2,  WM_UNATTACHED, 0, 0); 
MULTIPAGE_AddPage(hMultiPage, hPage2, "Run"); 

MULTIPAGE_SelectPage(hMultiPage,0); 

return hWin; 
} 

ответ

0

Эти 2 вещи не имеют никакого отношения. Однако может возникнуть проблема, что вы хотите удалить сектор, в котором находятся данные (возможно, изображения или аналогичные) для вашего графического интерфейса.

Технически, здесь нет другого варианта.

Кроме того, проверьте, какие значения переменных «SectorError» после завершения функции?