Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 19.12.2016
Сообщений: 1
1

Подключение к Arduino через com-port

19.12.2016, 16:38. Показов 1890. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте!
С com портами я не работал, что то оттуда отсюда взял и получил что то, но конечно же это не работает, пожалуйста направьте и укажите на ошибки. Спасибо!

P.S. Для начала я бы хотел просто посылать что то, и видеть что приходит пользуясь программой монитором Device Monitoring Studio.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#include <iostream.h>
#include <stdio.h>
#include <windows.h>
 
int main()
{
    HANDLE Port;
    COMMTIMEOUTS CommTimeOuts;
    DCB dcb;
    INT SizeBuffer = 1200;
 
    Port = CreateFile("\\\.\\COM2", GENERIC_READ | GENERIC_WRITE, 0, NULL,
                        OPEN_EXISTING, 0, NULL);
    SetupComm(Port, SizeBuffer, SizeBuffer);
    GetCommState(Port, &dcb);
 
    if (Port == INVALID_HANDLE_VALUE)
    {
       MessageBox(NULL, "Can not open next port", "Error", MB_OK);
       ExitProcess(1);
    }
    else
        MessageBox(NULL, "Ok!","Good", MB_OK);
 
    dcb.BaudRate = CBR_9600;
    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(Port, &dcb);
 
    CommTimeOuts.ReadIntervalTimeout= 10;
    CommTimeOuts.ReadTotalTimeoutMultiplier = 2;
    // значений этих тайм – аутов вполне хватает для уверенного приема
    // даже на скорости 110 бод
    CommTimeOuts.ReadTotalTimeoutConstant = 100;
    // используется в данном случае как время ожидания посылки
    CommTimeOuts.WriteTotalTimeoutMultiplier = 0;
    CommTimeOuts.WriteTotalTimeoutConstant = 0;
    SetCommTimeouts(Port, &CommTimeOuts);
 
    DWORD numbytes, numbytes_ok, temp;
    COMSTAT ComState;
    OVERLAPPED Overlap;
    char buf_in[5] = "Hello";
    numbytes = 5;
    ClearCommError(Port, &temp, &ComState);
    // если temp не равно нулю, значит порт в состоянии ошибки
    if(!temp)
        WriteFile(Port, buf_in, numbytes, &numbytes_ok, &Overlap);
    ClearCommError(Port, &temp, &ComState);
    if(!temp)
        ReadFile(Port, buf_in, numbytes, &numbytes_ok, &Overlap);
    // в переменной numbytes_ok содержится реальное число переданных-
    // принятых байт
 
 
    PurgeComm(Port, PURGE_RXCLEAR);
    PurgeComm(Port, PURGE_TXCLEAR);
 
    system("pause");
 
    CloseHandle(Port);
}
Добавлено через 5 часов 20 минут
Спасибо volvo за помощь!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.12.2016, 16:38
Ответы с готовыми решениями:

Получить имя (ProductID) устройства подключеного через com port
Получить имя (ProductID) устройства подключенного через com port напрямую, а не чтение реестра, ...

Отправка данных на arduino через com port
Есть проблема с отправкой данных на arduino. Принять принимаю но по факту мне это не надо. Есть код...

Получение строки с Arduino через Com port и проигрывание аудио-файла
у меня возникла проблема, ардуино отправляет строки &quot;Motion detected!&quot; и &quot;Motion ended!&quot; в порт...

C++ com port (arduino)
Возникла проблема.В приложенной программе (знаю что криво) проблема. Когда я вызываю функцию...

0
19.12.2016, 16:38
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.12.2016, 16:38
Помогаю со студенческими работами здесь

COM Port + Arduino
Привет всем! выпала такая задача, никак не могу её решить, помогите пожалуйста! есть код на...

ARDUINO + COM PORT + DELPHI
Здравствуйте. В программировании новичек, нужна помощ ваша. На терминал получаю данные с ардуино,...

Arduino serial port VS
такая проблема ни как не могу получить данные с ариаднино. Ардуина постоянно шлем данные что то...

Как настраивать serial port под Linux для приёма данных от Arduino Uno
Здравствуйте! Есть устройство на базе Arduino Uno с которым ПК с Линкусом ( Федора )...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru