h
чтоб быть в курсе таких кляузов
Size: a a a
h
LZ
E
LZ
A
AK
LZ
LZ
LZ
h
E
E
E
void FLASH_Write(uint32_t Address, uint16_t Data)
{
FLASH->CR |= FLASH_CR_PG; //Разрешаем программирование флеша
while ((FLASH->SR&FLASH_SR_BSY)); //Ожидаем готовности флеша к записи
*(__IO uint16_t*)Address = Data; //Пишем младшие 2 бата
while ((FLASH->SR&FLASH_SR_BSY)); //Ожидаем окончания записи во флеш
while (!(FLASH->SR & FLASH_SR_EOP));
FLASH->SR = FLASH_SR_EOP;
FLASH->CR &= ~(FLASH_CR_PG); //Запрещаем программирование флеша
}
h
void FLASH_Write(uint32_t Address, uint16_t Data)
{
FLASH->CR |= FLASH_CR_PG; //Разрешаем программирование флеша
while ((FLASH->SR&FLASH_SR_BSY)); //Ожидаем готовности флеша к записи
*(__IO uint16_t*)Address = Data; //Пишем младшие 2 бата
while ((FLASH->SR&FLASH_SR_BSY)); //Ожидаем окончания записи во флеш
while (!(FLASH->SR & FLASH_SR_EOP));
FLASH->SR = FLASH_SR_EOP;
FLASH->CR &= ~(FLASH_CR_PG); //Запрещаем программирование флеша
}
E
void FlashWriteParams(uint8_t Address, float Cref, float ConstDelta)Адреса разбросаны, знаю
{
memcpy(&byte[0],&ConstDelta,4);
parametrs[0]=(uint16_t)Address;
parametrs[1]=((byte[2]&0xFF)|((byte[3]&0xFF)<<8));
parametrs[2]=((byte[0]&0xFF)|((byte[1]&0xFF)<<8));
parametrs[3]=(uint16_t)(Cref*1000);
FLASH_Unlock();
FlashErase(0x8003C00);
FLASH_Write(0x8003C00, parametrs[0]);
FLASH_Write(0x8003C10, parametrs[1]);
FLASH_Write(0x8003C20, parametrs[2]);
FLASH_Write(0x8003C30, parametrs[3]);
FLASH_Lock();
}
h
void FlashWriteParams(uint8_t Address, float Cref, float ConstDelta)Адреса разбросаны, знаю
{
memcpy(&byte[0],&ConstDelta,4);
parametrs[0]=(uint16_t)Address;
parametrs[1]=((byte[2]&0xFF)|((byte[3]&0xFF)<<8));
parametrs[2]=((byte[0]&0xFF)|((byte[1]&0xFF)<<8));
parametrs[3]=(uint16_t)(Cref*1000);
FLASH_Unlock();
FlashErase(0x8003C00);
FLASH_Write(0x8003C00, parametrs[0]);
FLASH_Write(0x8003C10, parametrs[1]);
FLASH_Write(0x8003C20, parametrs[2]);
FLASH_Write(0x8003C30, parametrs[3]);
FLASH_Lock();
}
LZ
E
LZ
LZ