Запись в COM порт, подскажите!

V2oD2o
Offline
Зарегистрирован: 24.11.2015

Всем привет, не могу никак разобраться с записью в COM порт.

Значит выдать надо пакет данных, например FF 02 58 C5 E1

пробовал и целиком строку записать, и побайтно, и через print и через write - какую то пургу выдает в терминале

 

как передать в ком порт строку соответствующую в HEX редакторе - FF 02 58 C5 E1 ?

 

Спасибо!

V2oD2o
Offline
Зарегистрирован: 24.11.2015

Пробовал даже конвертировать из одной системы исчисления в другую и т.п.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

А как пробовал-то? Код где?

И что такое FF 02 58 C5 E1 ? Это шестнадцатиричные числа? или символы такие?

MagicianT
Offline
Зарегистрирован: 03.10.2015
V2oD2o
Offline
Зарегистрирован: 24.11.2015

ЕвгенийП пишет:

Это шестнадцатиричные числа? 

это шестнадцатиричные числа - верно, надо их и записать в порт, при записи выдает ерундистику вроде:

пишу Serial.print(178, HEX); - в порт пишется E1 

 

V2oD2o
Offline
Зарегистрирован: 24.11.2015

MagicianT пишет:

  • Serial.print(78, HEX) gives "4E"

 

Да если бы все так просто было, предыдущий мой ответ посмотри

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

V2oD2o пишет:

пишу Serial.print(178, HEX); - в порт пишется E1 

Чо, правда что ли? Может, всё-таки приведёте код скетча, а то что-то пока не очень верится, что такой глюк.

V2oD2o
Offline
Зарегистрирован: 24.11.2015
так тут смотреть нечего, вот:
 
#include <MsTimer2.h>
 
void setup() {
  Serial.begin(38400);
  MsTimer2::set(82, timerInterupt); 
  MsTimer2::start();  
}
 
void loop() {
}
 
void  timerInterupt() {
  Serial.print(178, HEX);
}
 
исполняется в proteus с подключенным COMPIM настроенным на 38400, лог снимается putty на скорости 38400
 
MagicianT
Offline
Зарегистрирован: 03.10.2015

А так если: 

  • Serial.print(0x4E, HEX) gives ???
V2oD2o
Offline
Зарегистрирован: 24.11.2015

F1 F1 F1 F1 F1 F1 F1 F1 

вот и я не пойму, то ли с лыжами проблема, то ли я кипятильник

MagicianT
Offline
Зарегистрирован: 03.10.2015

Может энту попробовать: https://www.arduino.cc/en/Serial/Write

V2oD2o
Offline
Зарегистрирован: 24.11.2015

Нашел походу, есть параметр у COMPIM помимо physical baud rate еще и virtual baud rate - сейчас начало писать текстом 4E 4E 4E, в логе 34 45 34 45 34 45 34 45, что вообщем то и соответствует 4 и Е

 

 

V2oD2o
Offline
Зарегистрирован: 24.11.2015

Все, разобрался! Спасибо!

print - пишет B2 - как текст, write - пишет уже как HEX символ по коду, в случае с B2 это "І"