我正在开发一个程序,该程序使用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程序。
提前致谢!
最佳答案
从CreateFile的MSDN页面上: