|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
11.08.2014, 10:24 | #1 |
Регистрация: 14.06.2014
Сообщений: 7
|
Serial port 9bit ?
В общем суть проблемы такова для связи пк с несколькими микроконтроллерами по USART мне необходимо чтобы в одной посылке через СОМ порт было 9 бит (8 бит данных + 9 бит признак адреса) но в свойстве класса serialPort.DataBits значение может быть в пределах 5-8...
Может у кого-то есть куски кода для работы с СОМ портом без использования стандартной библиотеки классов? |
11.08.2014, 12:14 | #2 |
Пользователь
Регистрация: 18.01.2011
Сообщений: 19
|
Операционная система вам не позволит работать с 9 бит из под любых класов, правда можно написать свой драйвер COM порта, я конечно могу ошибаться но написание нового драйвера под 9 бит повлечет очень много проблем. У меня есть 5 летний опыт в работе с serialPort. Были сложные проекты где передовались большие объемы данных в том числе и 16-ти разрядные числа. Поэтому предлагаю разбить 9 бит на 8 и 1, а в контроллере просто их объеденить, мне кажется что это будет проще всего. Если не понятно как это сделать пишите.
А по поводу 9 бит почитайте этот пост http://social.msdn.microsoft.com/For...out-9bit-rs232
___________________________________ _________
Самые гениальные идеи - самые простые. Помог с ответом нажми на весы. Последний раз редактировалось cerkonst; 11.08.2014 в 12:20. |
11.08.2014, 12:34 | #3 |
Регистрация: 14.06.2014
Сообщений: 7
|
мда теперь все встало на свои места, спасибо ....... а можно по подробнее как разбить 9 бит на 8 и 1 ведь там еще есть стартовые и стоповые биты,........ если мне нужно для каждого устройства отправлять две посылки по 9 байт первая с адресом устройства(9 бит равен 1) а вторая с командой(9 бит равен 0) ...... к примеру я могу поставить промежуточный контролер который будет собирать из четырех 8 битных посылок в две 9 битных но как мне отделить посылки с адресами от посылок с командами....... посылки должны идти непрерывным потоком
|
11.08.2014, 12:44 | #4 |
Пользователь
Регистрация: 18.01.2011
Сообщений: 19
|
Для вашего случая предлагаю отправлять данные в типе String и по правилам после отправки слова нужно отправить байт "0x0D". Контроллер принимает последовательно байты и как только встретит байт "0x0D" то понимает что строка закончилась. А в строке вы можете сколько угодно закодировать байт и отправка будет одна команда строка и втрорая байт "0x0D".
___________________________________ _________
Самые гениальные идеи - самые простые. Помог с ответом нажми на весы. |
11.08.2014, 13:16 | #5 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
учитывая что вы не работаете с интерфейсом напрямую. есть как таковое два варианта, первый это вернутся к API вызовам напрямую. второе это попробовать заюзать бит четности как-нить(но не уверен что выйдет) Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
11.08.2014, 14:50 | #6 | |
Пользователь
Регистрация: 18.01.2011
Сообщений: 19
|
По всемирно принятым, во всех программах, взять те же G-коды, окончанием комманды считается байт 0x0d.
Цитата:
2. Бит четности не является дополнительной информацией при передачи данных, это всего лишь настройка порта.
___________________________________ _________
Самые гениальные идеи - самые простые. Помог с ответом нажми на весы. |
|
11.08.2014, 17:19 | #7 | ||
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
CashCode.NET протокол купюроприемников такого не знает. протокол фискальных принтеров АТОЛ тоже не имеет такого. Цитата:
бит четности тоже передается. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
||
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Serial в Delphi 7 | Golden_RUS | Общие вопросы Delphi | 4 | 21.03.2013 08:51 |
c# serial port | Mihhhhh | Помощь студентам | 0 | 15.05.2012 18:50 |
Работа с serial портом | kolchan | Общие вопросы Delphi | 1 | 19.12.2011 20:09 |
Serial, centOS. gcc | alter_man | C/C++ Сетевое программирование | 1 | 28.06.2011 01:48 |
Serial Key | L.Morgan | Общие вопросы Delphi | 8 | 14.04.2009 18:05 |