我正在开发一个程序,使用Arduino UNO从接近传感器获取读数。虽然我可以使用Arduino的内置串行监视器来获得读数,但不知何故我无法从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程序。
提前致谢!
答案 0 :(得分:1)
从CreateFile上的MSDN页面:
要指定大于9的COM端口号,请使用以下语法: " \ \ COM10&#34 ;.此语法适用于所有端口号和硬件 允许指定COM端口号。