Size: a a a

2021 March 16

LZ

Leonid Zaliubovskii 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); //Запрещаем программирование флеша
}
а вообще нужно сверить с RM - там расписано по шагам. Я на память не помню это все. Напомни еще раз, что за МК
источник

E

Evgen in Embedded Group
Leonid Zaliubovskii
но это такое
параметрс это и есть массив юинт 16
просто раскладываю)
источник

LZ

Leonid Zaliubovskii in Embedded Group
Evgen
параметрс это и есть массив юинт 16
просто раскладываю)
я про флоат
источник

E

Evgen in Embedded Group
Leonid Zaliubovskii
а вообще нужно сверить с RM - там расписано по шагам. Я на память не помню это все. Напомни еще раз, что за МК
f030/f042 я из примеров брал
источник

LZ

Leonid Zaliubovskii in Embedded Group
тогда не нужно домножать, делить на константы
источник

E

Evgen in Embedded Group
Leonid Zaliubovskii
я про флоат
я 1 раскладываю
а 2 сделал для простоты, временно там важны 2 знака после запятой, но он никогда не выходит из рамок 0.95-1.05
источник

LZ

Leonid Zaliubovskii in Embedded Group
memcpy(&byte[0],&ConstDelta,4); Но так делать не стоит, чтобы не сломать. Поменяешь размер byte и у тебя все улетит в тартары
источник

E

Evgen in Embedded Group
Leonid Zaliubovskii
memcpy(&byte[0],&ConstDelta,4); Но так делать не стоит, чтобы не сломать. Поменяешь размер byte и у тебя все улетит в тартары
Сделать так sizeoff(byte)/ byte[0]?
источник

LZ

Leonid Zaliubovskii in Embedded Group
если у тебя например byte размермность изменить или ConstDelta
источник

E

Evgen in Embedded Group
Leonid Zaliubovskii
если у тебя например byte размермность изменить или ConstDelta
именно размерность  в байтах?
Флоат и чар, я думал прибиты гвоздями
если самому их не трогать
источник

LZ

Leonid Zaliubovskii in Embedded Group
я предлагаю так:

typedef union _type_t
{
      float float_val;
      uint16_t arr[2U];
} type_t

type_t type;

...
// set as float val
type.float_val = 5.3f;

...
// First and second half word access
type.arr[0]
type.arr[1]
источник

AK

Andrew K in Embedded Group
не проще со структурой работать?
источник

LZ

Leonid Zaliubovskii in Embedded Group
Evgen
именно размерность  в байтах?
Флоат и чар, я думал прибиты гвоздями
если самому их не трогать
ну вот ты поменял у себя byte и стало оно byte 2 или по невнимательности memcpy double вместо float скопировал
источник

E

Evgen in Embedded Group
Andrew K
не проще со структурой работать?
в плане?
источник

AK

Andrew K in Embedded Group
все параметры 1 -4 собрать в структуру
источник

LZ

Leonid Zaliubovskii in Embedded Group
а так, тебе компилятор не даст - ошибку или ворнинг напишет что пытаешься впихнуть невпихуемое
источник

E

Evgen in Embedded Group
Andrew K
все параметры 1 -4 собрать в структуру
собраны и так
но я эту функцию сделал, чтоб код не дублировать
один раз по умолчанию сам задаю, и через структуру
источник

E

Evgen in Embedded Group
Andrew K
все параметры 1 -4 собрать в структуру
FlashWriteParams(Parametrs->Adress,Parametrs->Cref,Parametrs->ConstDelta);
если вы про это
можно реинить структуру конечно
источник

LZ

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