Як передати float через UART

Тому що працюємо як бджоли

Як передати float через UART?

Почнемо з невеликого опису типу.float- подання чисел з плаваючою комою. Дуже популярний такий формат у мікроконтролерах.

Єдиний поширений практично на всі типи компіляторів формат з плаваючою точкою. Найчастіше і тип double є тим самимfloat.

float у пам'яті мікроконтролера являє собою 4 байти, в яких зберігається мантиса зі значеннями та десятковий ступінь числа.

Фактично число 2500 виглядатиме так: 2.5*10^3. окремо зберігаємо 2.5, та окремо +3. Але не в цьому суть статті.

Отже, завдання таке: передати із мікроконтролера змінну var1 типу float. Код написаний мовою С.

unsigned char * ptr;

Тепер у нас покажчик прямо посилається на 4 байти флоат, що й вимагалося для вирішення.

Як отримати доступ до значення байтів?

*(ptr+1)доступ до другого байта.

Функція для передачі байта:putchar(unsigned char b);

Ми послідовно закладаємо в неї наші байти та отримуємо:

Або простіше записати як функції. Втім, можна було одразу мотати до кінця статті. ;-)

void write_float(float f) unsigned char *ptr; char i; ptr = (unsigned char *)&f; for (i=0;i putchar(*(ptr++)); >