Size: a a a

2021 March 16

AK

Andrew K in Embedded Group
можно сразу записать всю структуру с параметрами во флешку
источник

LZ

Leonid Zaliubovskii in Embedded Group
к слову, учти на будущее
источник

AK

Andrew K in Embedded Group
указать ее адрес, размер и писать
источник

E

Evgen in Embedded Group
Andrew K
можно сразу записать всю структуру с параметрами во флешку
по 2 байта так же итерацией
источник

AK

Andrew K in Embedded Group
по два а что делать
источник

E

Evgen in Embedded Group
Andrew K
указать ее адрес, размер и писать
если вы пример продемонстрируете
буду признателен, я только за улучшение кода
источник

AK

Andrew K in Embedded Group
покажите вашу структуру с параметрами
источник

LZ

Leonid Zaliubovskii in Embedded Group
Evgen
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

Evgen in Embedded Group
Andrew K
покажите вашу структуру с параметрами
/*!****************************************************************************
* Typedef
*/
typedef struct SettingStruct {
 char Adress;
 float Cref;
 float ConstDelta;
 int Ifs;
}Setting_type;


#endif /* CODE_INC_PARAM_H_ */
/*!****************************************************************************
* Exported variables
*/
extern Setting_type *Parametrs;
источник

LZ

Leonid Zaliubovskii in Embedded Group
Evgen
если вы пример продемонстрируете
буду признателен, я только за улучшение кода
хотя, самое забавное - в примерах они сами пишут не так, как в ДШ, но добвляют просто еще одно ожидание
источник

LZ

Leonid Zaliubovskii in Embedded Group
Evgen
/*!****************************************************************************
* Typedef
*/
typedef struct SettingStruct {
 char Adress;
 float Cref;
 float ConstDelta;
 int Ifs;
}Setting_type;


#endif /* CODE_INC_PARAM_H_ */
/*!****************************************************************************
* Exported variables
*/
extern Setting_type *Parametrs;
не стоит так делать. Если так записать и восстановить - беда будет. Кто о увыравнивании думать будет
источник

E

Evgen in Embedded Group
Leonid Zaliubovskii
хотя, самое забавное - в примерах они сами пишут не так, как в ДШ, но добвляют просто еще одно ожидание
я брал со снипов
источник

E

Evgen in Embedded Group
Leonid Zaliubovskii
хотя, самое забавное - в примерах они сами пишут не так, как в ДШ, но добвляют просто еще одно ожидание
прагма? выравнивание?
источник

LZ

Leonid Zaliubovskii in Embedded Group
если структуру писать так напрямую. Нужно использовать __packed
источник

E

Evgen in Embedded Group
Leonid Zaliubovskii
если структуру писать так напрямую. Нужно использовать __packed
так я пишу её во флэш, вы видели как
поэтому выравнивания нет по 2 или 4 байта
источник

LZ

Leonid Zaliubovskii in Embedded Group
сделай sizeof(Setting_type) и ответть на вопрос почему ожидаемая и реальная цифра не сходятся
источник

E

Evgen in Embedded Group
Leonid Zaliubovskii
сделай sizeof(Setting_type) и ответть на вопрос почему ожидаемая и реальная цифра не сходятся
как я понимаю 13 байт
сейчас проверю
источник

LZ

Leonid Zaliubovskii in Embedded Group
я на 16 ставлю
источник

E

Evgen in Embedded Group
Leonid Zaliubovskii
я на 16 ставлю
вы правы
идет выравнивание по 4 байта так?
источник

LZ

Leonid Zaliubovskii in Embedded Group
источник