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

 
 
> RS232 и передача 0, не получаеться передать 0
kolisnichenko_r
сообщение Jul 12 2010, 12:16
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 435
Регистрация: 12-09-07
Пользователь №: 30 482



Здравствуйте!
Использую для работы с СОМ портом потоки WINAPI и функции ResumeThread(), SuspendThread(). За основу взята программа с сайта http://www.piclist.ru/S-COM-THREAD-RUS/S-COM-THREAD-RUS.html. Разные значения отсылаются, но если есть где-то в посылке нолевое значение - отправка прерывается. Как можно передать 0? Дайте совет, пожалуйста.
Код передачи:
Код
//peredacha - 10 byte
   memset(bufwr,0,BUFSIZE);            //очистить программный передающий буфер, чтобы данные не накладывались друг на друга
   PurgeComm(COMport, PURGE_TXCLEAR);           //очистить передающий буфер порта
   for(unsigned char icd=0;icd<10;icd++){bufwr[icd]=comand[icd];}
   ResumeThread(writer);               //активировать поток записи данных в порт
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Genadi Zawidowsk...
сообщение Jul 12 2010, 19:06
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



Запретите формирование ошибки по приёму frame error. Иначе, пока не считаете состояние ошибок (сбравсываются они при этом) все операции ввода-вывода на ком-порте завершаются с ошибкой.

За образец пока не поздно предлагаю взять программу из аттачмента.

зы: только сейчас заметил что проблема не в передаче нуля как символа с нулём в стоп-бите... но в исходники копните.

Сообщение отредактировал Genadi Zawidowski - Jul 12 2010, 19:09
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 28th July 2025 - 08:20
Рейтинг@Mail.ru


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