Последовательное соединение открывает все порты? - PullRequest
0 голосов
/ 14 октября 2019

Я создаю интерфейс UART с MFC, интерфейс включает открытое соединение, отправку сообщения и получение сообщения. Я думал, что открыл порт нормально, после проверки, мой разъем D9 сидит над COM5, который успешно открылся. Проблема в том, что даже при изменении соединения с COM5 на необоснованный COM535 я все равно не получил никаких ошибок

Я пробовал несколько COM-портов, некоторые из них разумные, а некоторые нет.

ЭтоВот как я инициализирую соединение с плохим COM:

Serial::Serial(CString &commPortName, int bitRate)
{
    commHandle = CreateFile(L"\\\\.\\COM535", GENERIC_READ|GENERIC_WRITE, 0,NULL, OPEN_EXISTING, 
        FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED , NULL);

    if(commHandle == INVALID_HANDLE_VALUE) 
    {
        throw("ERROR: Could not open com port");
    }
    else 
    {
        // set timeouts
        COMMTIMEOUTS cto = { MAXDWORD, 0, 0, 0, 0};
        DCB dcb;
        if(!SetCommTimeouts(commHandle,&cto))
        {
            Serial::~Serial();
            throw("ERROR: Could not set com port time-outs");
        }

        // set DCB
        memset(&dcb,0,sizeof(dcb));
        dcb.DCBlength = sizeof(dcb);
        dcb.BaudRate = bitRate;
        dcb.fBinary = 1;
        dcb.fDtrControl = DTR_CONTROL_ENABLE;
        dcb.fRtsControl = RTS_CONTROL_ENABLE;

        dcb.Parity = NOPARITY;
        dcb.StopBits = ONESTOPBIT;
        dcb.ByteSize = 8;

        if(!SetCommState(commHandle,&dcb))
        {
            Serial::~Serial();
            throw("ERROR: Could not set com port parameters");
        }
    }
}

Когда я подключаюсь к COM5, все хорошо, но я ожидаю, что у меня возникнет проблема с подключением к COM535, чего у меня нет, и это не так, как должно быть.

1 Ответ

0 голосов
/ 14 октября 2019

«Проблема» была моей собственной проблемой на рабочем месте, перезагрузил компьютер, и я начал получать ошибки из-за плохого COM-порта

...