С
Size: a a a
С
s
#define ENDMEMORY (0x0801FC00 + 1024) // последняя ячейка флеша (F103)uint32_t flash_search_adress(uint32_t address, uint8_t cnt)
{
uint8_t count_byte = cnt;
while(count_byte)
{
if(0xFF == *(uint8_t*)address++) count_byte--;
else count_byte = cnt;
if(address == ENDMEMORY - 1) return 0;
}
return address -= cnt;
}
Перед тем как записать очередную порцию, вызываем функцию...uint32_t adr = flash_search_adress(0x0801FC00, 10);
Первый аргумент это адрес с которого начинаются ваши записи (здесь это адрес начала последней страницы)С
#define ENDMEMORY (0x0801FC00 + 1024) // последняя ячейка флеша (F103)uint32_t flash_search_adress(uint32_t address, uint8_t cnt)
{
uint8_t count_byte = cnt;
while(count_byte)
{
if(0xFF == *(uint8_t*)address++) count_byte--;
else count_byte = cnt;
if(address == ENDMEMORY - 1) return 0;
}
return address -= cnt;
}
Перед тем как записать очередную порцию, вызываем функцию...uint32_t adr = flash_search_adress(0x0801FC00, 10);
Первый аргумент это адрес с которого начинаются ваши записи (здесь это адрес начала последней страницы)YL
С
С