Перейти к содержанию
    

Проблема с СОМ-портом

Здравствуйте, возникла такая проблема, есть ком-порт (usb) связывает программу ПК и МК.

Передаем число до 65535. Оно кодируется двумя байтами и отсылается через ком-порт в ПК, или от ПК к МК.

Но вот в чем засада, при передаче числа больше 127, число приходит кривое, т.е. посылаем 1500, приходит 1363,

посылаем 150, приходит 63... до 127 все нормально доходит.

Может ли быть проблема с кодировками???

Причем, если передавать чистые байты, например 01 5Е,

то все нормально доходит, если же передать как символы, то число большее 127 плывет

Изменено пользователем Ekka

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проблема в вашем коде. Где явно попутаны uint и int (когда заполняется буфер для передачи, либо на принимающей стороне - когда из буфера восстанавливаются числа).

Удобней всего сериализовать данные перед передачей, тогда такой проблемы не будет. А в том виде, что у вас, еще и будет проблема "конечности" — на big-endian машинах код тоже не будет работать.

Изменено пользователем Эдди

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Причем, если передавать чистые байты, например 01 5Е,

то все нормально доходит, если же передать как символы, то число большее 127 плывет

Вы ошиблись темой, вам сюда лучше написать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Может ли быть проблема с кодировками???

Строки в Delphi нынче по умолчанию хранятся в unicode.

Поэтому надо передавать посимвольно и каждый символ конвертировать в байт.

Про Delphi - это я включил телепатию. :biggrin:

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

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

×
×
  • Создать...