8 бит + 9 бит и стоповый
- Сообщения: 10
- Зарегистрирован: Ср фев 15, 2012 18:18:17
В общем возникла проблема есть устройство в описании протокола написано что отправляют 9 бит подряд. только вот не задача ПК отправляет байт(8 бит) не нашел негде решения, подскажите как отправить данные. Посылаю с ПК по RS485. (Да устройство сделано у нас в России.)
- Реклама
режим 9-битовой посылки - это стандартный режим работы USART. все оборудование, включая персональные компьютеры и микроконтроллеры, содержащее этот интерфейс, обязано работать с 9-битовыми пакетами. что у вас конкретно не получается?
битва с дураками проиграна, победители торжествуют. слава победителям!
Конкретно напишите, что написано.. Просто 9 бит могут означать, что угодно..Astrel писал(а):отправляют 9 бит подряд
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
- Сообщения: 10
- Зарегистрирован: Ср фев 15, 2012 18:18:17
Конкретно смогу только утром. Так как описания сейчас нет под рукой. А в интернете оно не валяется как не странно.
Да я в курсе. Конкретно не какой реакции на отправленные данные, думаю что я неправильно отправляю. Возможно что прибор неисправен но сомнительно.Мастер Ломастер писал(а):режим 9-битовой посылки - это стандартный режим работы USART. все оборудование, включая персональные компьютеры и микроконтроллеры, содержащее этот интерфейс, обязано работать с 9-битовыми пакетами. что у вас конкретно не получается?
- Сообщения: 10
- Зарегистрирован: Ср фев 15, 2012 18:18:17
- Реклама
А в каком нить не docx - формате можно выложить, хоть в том-же doc-е..Astrel писал(а):описание протокола
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
Девятый бит нужно передавать как бит паритета с фиксированными значениями MARKPARITY или SPACEPARITY. Но под Windows это крайне неудобно, в API можно пользоваться лишь непосредственной передачей байта TransmitCommChar, а не привычным WriteFile.
а разве в настройках драйвера СОМ-порта нельзя настроить автоматическое вычисление и передачу этого бита?Леонид Иванович писал(а):Девятый бит нужно передавать как бит паритета с фиксированными значениями MARKPARITY или SPACEPARITY. Но под Windows это крайне неудобно, в API можно пользоваться лишь непосредственной передачей байта TransmitCommChar, а не привычным WriteFile.
битва с дураками проиграна, победители торжествуют. слава победителям!
Так здесь нужно не автоматическое вычисление, а ручное задание.
- Сообщения: 10
- Зарегистрирован: Ср фев 15, 2012 18:18:17
Сохранил в более простом формате RTF.МитяРа писал(а):А в каком нить не docx - формате можно выложить, хоть в том-же doc-е..Astrel писал(а):описание протокола
То есть девятый бит используется как бит паритета и передается с данными? Да TransmitCommChar передает байт, может подскажите решение?Леонид Иванович писал(а):Девятый бит нужно передавать как бит паритета с фиксированными значениями MARKPARITY или SPACEPARITY. Но под Windows это крайне неудобно, в API можно пользоваться лишь непосредственной передачей байта TransmitCommChar, а не привычным WriteFile.
Так я уже подсказал. В протоколе 9-й бит используется не как бит паритета, а для других целей. Но передавать его надо, как бит паритета. Устанавливаете DCB.Parity как Вам нужно, MARKPARITY или SPACEPARITY, передаете байт с помощью TransmitCommChar. 9-й бит в посылке будет определен заданным значением Parity. Затем устанавливаете DCB.Parity по-другому, снова передаете байт. Таким образом можно передавать посылки с любым сначением 9-го бита.
- Сообщения: 10
- Зарегистрирован: Ср фев 15, 2012 18:18:17
Astrel , не надо цитировать, тем более полностью, сообщение на которое сразу за ним отвечаешь..
Форум не резиновый и читать такие темы не удобно.. Привыкай сразу и к правильному..
МитяРа..
Да я так и передавал и не работало, но уже разобрался. Проблема с питанием была как это не смешно, оказывается для питания блоков используется два отдельных питания (я то думал что оно передается раз они соединены между собой)
Всем спасибо, вам особенно Леонид Иванович.
Форум не резиновый и читать такие темы не удобно.. Привыкай сразу и к правильному..
МитяРа..
Да я так и передавал и не работало, но уже разобрался. Проблема с питанием была как это не смешно, оказывается для питания блоков используется два отдельных питания (я то думал что оно передается раз они соединены между собой)


