Buenas, estoy intentando grabar unos datos en la flash del microcontrolador STM32G030C8T6, pero no me termina de funcionar:
las paginas son de 2K y la memoria flash de 64KB.
tengo el siguiente código basico para guardar un dato:
HAL_FLASH_Unlock(); //Desbloquemos la memoria
EraseInitStruct.TypeErase = FLASH_TYPEERASE_PAGES; //Indicamos que vamos a borrar paginas de la memoria y no la memoria entera
EraseInitStruct.Page = FLASH_USER_START_ADDR; //Indicamos el inicio de la memoria de usuario
EraseInitStruct.NbPages = 1; //Indicamos el numero de paginas a borrar
HAL_FLASHEx_Erase(&EraseInitStruct, &pagina_error); //Iniciamos el proceso de borrado de la memoria
direccion_guardar=FLASH_USER_START_ADDR;
HAL_FLASH_Program(FLASH_TYPEPROGRAM_DOUBLEWORD, direccion_guardar, (uint64_t)Parametros.A01);
He probado con bastantes direcciones de memoria inicial a ver si esque estaba pisando el codigo pero nada, el debug se queda colgado justo despues de la linea :
HAL_FLASH_Program(FLASH_TYPEPROGRAM_DOUBLEWORD, direccion_guardar, (uint64_t)Parametros.A01);
la direccion que he colocado es la 0x0800 F800 que es la ultima pagina de la memoria para este micro.
¿que estoy haciendo mal?