Quote (alexval2007)
сколько байт в пакете 6 ???
в случае
: A1 C1 D1 CC {CR}{LF}
передается 4 байта информации "A1 C1 D1 CC"
но по интерфейсу UART ты отправляешь 8 байт - это в виде ANSII "A 1 C 1 D 1 C C"
+ к этому ты начинаешь посылку с ANSII символа ":" и заканчиваешь символом перевода и возврата коретки это два байта в HEX "0D 0A"
Всего по интерфейсу UART ты передаешь 8+3 = 11 байт.
Почитай для начала Modbus_Rus.doc
Вот немного от туда чтобы ты понял:
Code
ASCII фрейм.
В ASCII-режиме, сообщение начинается с "двоеточия" (:, ASCII 3A hex), и заканчивается последовательностью "возврат каретки-перевод строки" (CRLF, ASCII 0D и 0A hex).
Допустимые символы для передачи - это шестнадцатиричные цифры 0-9, A-F. Монитор сетевого устройства в сети непрерывно отслеживает символ "двоеточие". Когда он принят, каждое устройство декодирует следующие поле сообщения (поле адреса) и т.д.
Интервалы между символами сообщения могут быть до 1 сек. Если интервал больше, то принимающее устройство распознает это как ошибку. Типичный фрейм сообщения показан ниже.
¦ старт ¦адрес ¦ ф-ия ¦данные¦ LRC ¦конец ¦
+----- +------ +------ +------ +----- +----- +
¦1 сим ¦2 сим ¦2 сим ¦ n сим ¦2 сим¦2 сим ¦
¦ : ¦ ¦ ¦ ¦ ¦CR LF ¦
L----- +------ +------ +------ +----- +------
Исключение: В контроллерах типа 584 и 984A/B/X ASCII-сообщение может нормально заканчиваться после контрольной суммы без CRLF последовательности. Интервалы меньше 1 сек допускаются.