¿Cómo lee y escribe STM32 el FLASH interno del chip? ¿Cuántas variables se deben almacenar?
Se requieren tres variables. El programa es el siguiente:
void write_buf(u32 addr,u8 *p,u16 n)
{
.u32 r1;
n=n/4;//Borrar y escribir flash
FLASH_Unlock();//Desbloquear FLASH
FLASH_ClearFlag(FLASH_FLAG_BSY | FLASH_FLAG_EOP | FLASH_FLAG_PGERR | FLASH_FLAG_WRPRTERR);//Borrar bit de bandera
FLASH_ErasePage(addr);
while(n--)
{r1=*( p++);
r1|=*(p++)<<8;
r1|=*(p++)<<16;
r1|=* (p++)<<24;
FLASH_ProgramWord(dirección, r1);
dirección+=4;
}
} p>
void read_buf(u32 addr,u8 *p,u16 n)
{
mientras(n--)
{
*(p++)=*((u8*)addr++);
}
}