реклама на сайте
подробности

 
 
> Прием по КОМ порту 9-го бита под Windows
paskal
сообщение Nov 19 2015, 19:10
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 352
Регистрация: 29-10-06
Из: Тула
Пользователь №: 21 769



Здравствуйте!
Для работы с КОМ портом всегда пользовался стандартными Win32 службами Createfile, WriteFile, ReadFile, и этого хватало. Но вот возникла задача где надо принимать посылки в 9 бит. И значение девятого бита должно читаться. Как это сделать?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
iosifk
сообщение Nov 19 2015, 19:54
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(paskal @ Nov 19 2015, 22:10) *
Здравствуйте!
Для работы с КОМ портом всегда пользовался стандартными Win32 службами Createfile, WriteFile, ReadFile, и этого хватало. Но вот возникла задача где надо принимать посылки в 9 бит. И значение девятого бита должно читаться. Как это сделать?

Читать ошибку паритета...


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
paskal
сообщение Nov 19 2015, 20:05
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 352
Регистрация: 29-10-06
Из: Тула
Пользователь №: 21 769



Цитата(iosifk @ Nov 19 2015, 22:54) *
Читать ошибку паритета...

А если в буфере несколько байт накопилось, этот метод сработает?
Go to the top of the page
 
+Quote Post
zltigo
сообщение Nov 19 2015, 21:32
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



QUOTE (paskal @ Nov 19 2015, 22:05) *
А если в буфере несколько байт накопилось, этот метод сработает?

Нет. И Windows здесь ну совсем ни причем. Железо не поддерживает.



--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
jcxz
сообщение Nov 20 2015, 05:41
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(zltigo @ Nov 20 2015, 03:32) *
Нет. И Windows здесь ну совсем ни причем. Железо не поддерживает.

Вы уверены? Разве FIFO 16550 не хранит биты состояния PE/FE/BREAK вместе с битами данных для каждого принятого байта?
Go to the top of the page
 
+Quote Post
zltigo
сообщение Nov 20 2015, 13:24
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



QUOTE (jcxz @ Nov 20 2015, 07:41) *
Вы уверены? Разве FIFO 16550 не хранит биты состояния PE/FE/BREAK вместе с битами данных для каждого принятого байта?

Не хранит sad.gif. Ну и BREAK это вообще не к байту относится.
Навороченных UART, котрые хранят, вообще раз два и все sad.gif. Самое навороченным в этом плане был набортный у древного AM186CC. Впромем там и битов было сколько хошь, и поддержка адресации в старших битах. A 16550 это все тот-же 8250 к которому грубо FIFO только на данные прикрутили sad.gif.




--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
kovigor
сообщение Nov 20 2015, 13:40
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295



Можно, например, передавать данные небольшими пакетами (например, с размером, равным размеру FIFO приемника) и забраковывать пакет, если для какого-то из его байтов установилась ошибка четности ...
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 29th June 2025 - 12:27
Рейтинг@Mail.ru


Страница сгенерированна за 0.0146 секунд с 7
ELECTRONIX ©2004-2016