Я работаю над программой для считывания показаний с датчика приближения с помощью 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
из окна отладки, показывающего, есть проблема во время открытия порта.
Некоторые дополнительные сведения:
Я буду загружать свою программу UNO, если это необходимо.
Заранее спасибо!
Со страницы MSDN на CreateFile:
Чтобы указать номер COM-порта больше 9, используйте следующий синтаксис:
«\. \ COM10». Этот синтаксис работает для всех номеров портов и оборудования, которые
позволяет указывать номера COM-портов.