Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > С/С++
Перезагрузить страницу передача float в порт 4-мя байтами
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
R8AAP R8AAP вне форума
Новичок
 
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 07.11.2016
По умолчанию передача float в порт 4-мя байтами - 08.11.2016, 00:03

Здравствуйте! Необходимо с контроллера передать температуру на ПК. Разбираюсь со стандартом ieee754, очень сложно... Как собрать 4-ре байта в переменную float я знаю, работает. А вот передать float в порт 4-мя байтами не знаю как. Код представленный ниже (в сокращении) выдает не то, что надо. Ребята, кто сталкивался с такой задачей, отзовитесь. Чувствую, должно быть просто.

код в МК:
c Код:
unsigned char buffTX[4];
float t=36.6;
sprintf(buffTX,"%f",t);
//далее идет отправка в UART
for (i=0; i <  5; i++)
    {
     while((UART2->FR&(1<<5)) == (1<<5));   //wait until Tx not ready
     UART2->DR = buffTX[i];
     }
while((UART2->FR&(1<<3)) == (1<<3)); //wait Tx end

код в ПК:
Цитата:
unsigned char buffRX[4];
float t;
t =*( (float *) buffRX);
Ответить с цитированием
  (#2 (permalink)) Старый
Rius Rius вне форума
Программист
 
Аватар для Rius
 
Сообщений: 7,394
Сказал(а) спасибо: 22
Поблагодарили 936 раз(а) в 920 сообщениях
Регистрация: 27.08.2004
Адрес: Russian Federation
По умолчанию 08.11.2016, 06:01

c Код:
float f = 1.0f;
uint8_t *b = (uint8_t *)&f;
send(b, 4);
или
c Код:
float f = 1.0f;
uint8_t bytes[4];
memcpy(bytes, &f, 4);
send(bytes, 4);

Последний раз редактировалось Rius; 08.11.2016 в 06:05
Ответить с цитированием
  (#3 (permalink)) Старый
R8AAP R8AAP вне форума
Новичок
 
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 07.11.2016
По умолчанию 08.11.2016, 21:08

Спасибо! Заработало, использовал второй код!!!
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как перевести float в int hazardhz Haskell 1 06.04.2011 21:05
Как записать в память значение float но тремя байтами krais C++ Builder 34 16.03.2009 09:28
Как перевести string to float Aram .NET 8 02.08.2008 15:00
Float TO Int как переводить данные Horror С/С++ 3 28.02.2008 01:40
Передача данных через ком-порт Ира К. Вопросы начинающих программистов 7 29.06.2007 20:38
Как строку перевести во float Kosta Visual C++ 4 26.06.2006 10:28
Serial to Ethernet передача данных через COM порт Regbist Assembler 0 16.09.2005 12:19
Как округлить float Laime-oz C++ Builder 7 20.03.2005 15:44
Как из float перенести в char Leonardo С/С++ 18 12.07.2004 16:14
Как вставить бит м/у 2 байтами Anonymous Алгоритмы 2 03.02.2003 21:51
Как вставить бит м/у 2 байтами Anonymous С/С++ 0 02.02.2003 15:47
Как преобразовать float в текст Anonymous Visual C++ 1 09.12.2002 17:41



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов