Считывание данных с COM порта
- Войдите на сайт для отправки комментариев
Вс, 21/06/2020 - 11:35
День добрый.
Задача просто считать данные с COM порта и выводить их на экран, пока поступают данные.
Примерно понял, как должна выглядеть структура кода, подписал, где что происходит.
Подскажите, как будет правильно выглядеть код на языке СИ и какой будет код, для вывода данных на экран.
int Number_COM, Speed_COM; //переменные для ввода номера и скорости порта { printf ("Vvedite nomer COM porta:",\n); scanf (Number_COM); printf ("\n"); HANDLE handle = CreateFile (Number_COM, //эта строка всегда имеет один и тот же вид GENERIC_READ | GENERIC_WRITE, NULL, NULL, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, NULL ); GetCommState (HANDLE hPort, //эта функция задаёт стандартные параметры порта, возможно и не нужна??? LPDCB lpDCB ); printf ("Vvedite skorost COM porta:",\n); scanf (Speed_COM); printf ("\n"); dcb.BaudRate = Speed_COM; //в DCB задаются основные параметры COM порта dcb.fBinary = TRUE; dcb.fOutxCtsFlow = FALSE; dcb.fOutxDsrFlow = FALSE; dcb.fDtrControl = DTR_CONTROL_HANDSHAKE; dcb.fDsrSensitivity = FALSE; dcb.fNull = FALSE; dcb.fRtsControl = RTS_CONTROL_DISABLE; dcb.fAbortOnError = FALSE; dcb.ByteSize = 8; dcb.Parity = NOPARITY; dcb.StopBits = 1; SetCommState (HANDLE hPort, //конфигурация COM порта LPDCB lpDCB ); CommTimeOuts.ReadIntervalTimeout= 10; //cto задаётся время приёма и ожидания посылки CommTimeOuts.ReadTotalTimeoutMultiplier = 1; CommTimeOuts.ReadTotalTimeoutConstant = 100; ReadFile (HANDLE hPort, LPVOID lpBuffer, //операция чтения, для порта DWORD nNumOfBytesToRead, LPDWORD lpNumOfBytesRead, LPOVERLAPPED lpOverlapped ); printf(???); Как отобразить вывод информации с порта??? //вывод данных на экран }
Ничего не понял. Вы программу для Windows пишете? А почему вопросы на форуме Ардуино задаёте?
Примерно понял, как должна выглядеть структура кода,
Скопировать декларации это не понять. Нужно, хотя бы, язык знать, чтобы делать такие заявления.
Потому-что считаю, что работу с COM портами и сигналами лучше знают специалисты с этого форума, т.к. им на мой взгляд приходится с этим часто сталкиваться.
Примерно понял, как должна выглядеть структура кода,
Скопировать декларации это не понять. Нужно, хотя бы, язык знать, чтобы делать такие заявления.
Но структуру же отобразил примерно правильно?
Но структуру же отобразил примерно правильно?
Для Windows - да.
Немного поправил.
ты дебил? Это Ардуино форум, нахрена лепить сюда тексты виндовых программ, в которых всё равно нихрена не понимаешь?
Ардуине эти красивые слова, оформленные в код совсем никак не помогут.
Немного поправил.
ты дебил? Это Ардуино форум, нахрена лепить сюда тексты виндовых программ, в которых всё равно нихрена не понимаешь?
Ардуине эти красивые слова, оформленные в код совсем никак не помогут.
1.
Всего доброго, убейте или закройте тему.
И что, в этом примере создавали структуру OVERLAPPED на стеке, никак не инициализировали и указатель на неё пихали функции ReadFile? Бред! Вариантов тут два:
1. Вы ничерта не поняли в примере и передрали эту строку оттуда без других необходимых вещей (что скорее всего)
2. Пример писал такой же грамотей, как Вы.
А по поводу того, что Вы мне ответили, видимо, Вы имеете в виду фразу
Потому-что считаю, что работу с COM портами и сигналами лучше знают специалисты с этого форума, т.к. им на мой взгляд приходится с этим часто сталкиваться.
Так? Я не воспринял это ответом. Но, если это ответ, то вынужден Вас разочаровать. Знать-то может и знают, но вдаваться в обучение Вас работе с Windows и стандартной библиотекой Си (а Вас нужно учить именно этому, Вы даже printf и ReadFile вызвать не можете) на данном форуме вряд ли кто будет. Но, думаю, что Вы это уже и так заметили.
убейте или закройте тему.
Вы правда считаете себя вправе отдавать здесь приказы?
Потому-что считаю, что работу с COM портами и сигналами лучше знают специалисты с этого форума, т.к. им на мой взгляд приходится с этим часто сталкиваться.
Но лучше сначала у Гугла.
Кстати, можно заглянуть и в Вики.
А на данном форуме для взаимодействия между МК и ПК профильным считается использование Processing, чему посвящен соответствующий раздел.
На, готовый код http://arduino.ru/Reference/Serial/Read
там еще много чего интересного.
А для windows вот может помочь: http://com0com.sourceforge.net/
На, готовый код http://arduino.ru/Reference/Serial/Read
там еще много чего интересного.
А для windows вот может помочь: http://com0com.sourceforge.net/
Спасибо, уже разобрался.