Ошибка отладки при открытии COM-порта

Я работаю над программой для считывания показаний с датчика приближения с помощью Arduino UNO. В то время как я могу получить показания просто отлично, используя встроенный в Arduino Serial Monitor, я не могу открыть тот же порт из MS VC ++.

Ниже приводится (одна часть) программы:

int main(void)
{
/*used for port"COM13"*/
HANDLE hCom=INVALID_HANDLE_VALUE;

char input[30];
string ss,ss1,ss2,ss3,ss4;

/*Open "COM13"*/
hCom=CreateFile("COM13",GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL);

if(hCom==INVALID_HANDLE_VALUE)
{
printf("can't open file");
}

/*Communication Setting*/
DCB dcb;
memset(&dcb,0,sizeof (DCB));
dcb.DCBlength=sizeof (DCB);
dcb.BaudRate=CBR_9600;
dcb.ByteSize=8;
dcb.Parity=NOPARITY;
dcb.StopBits=ONESTOPBIT;
SetCommState(hCom,&dcb);

while(1)
{
//using the data string inputs, printout the readings, process it etc...
}
}

Когда я пытаюсь отладить его, я получаю эту ошибку:

Пожалуйста, просветите меня с этой ошибкой

и я получил can't open file из окна отладки, показывающего, есть проблема во время открытия порта.

Некоторые дополнительные сведения:

  1. Почему VC ++? Я также использую OpenCV и некоторые математические вычисления в той же программе, поэтому мне легче работать в VC ++
  2. Я также проверил мою программу UNO с TeraTerm для чтения данных без проблем (= нет проблем с моим UNO)
  3. Я тестировал вышеуказанную программу с другим микроконтроллером (не Arduino) без проблем.

Я буду загружать свою программу UNO, если это необходимо.

Заранее спасибо!

1

Решение

Со страницы MSDN на CreateFile:

Чтобы указать номер COM-порта больше 9, используйте следующий синтаксис:
«\. \ COM10». Этот синтаксис работает для всех номеров портов и оборудования, которые
позволяет указывать номера COM-портов.

1

Другие решения


По вопросам рекламы [email protected]