示例,仅供参考:
// 1.打开串行通信口,保存串口句柄hCom=CreateFile("////.//COM10", GENERIC_READ | GENERIC_WRITE,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL)if(hCom==(HANDLE)INVALID_FILE_SIZE){MessageBox("端口无法打开")
return}if(hCom != INVALID_HANDLE_VALUE){// 设置端口SetupComm(hCom,OUT_BUFF_SIZE,IN_BUFF_SIZE)DCB myDCBGetCommState(hCom, &myDCB)myDCB.BaudRate=57600// 波特率myDCB.fBinary=TRUE// 通信方式=二进制myDCB.fParity=TRUE// 奇偶校验 TRUE=使用,FALSE=不使用myDCB.Parity=1 // 校验方式:0-无 1-奇 2-偶 3-标志 4-空格myDCB.ByteSize=8// 数据位数myDCB.StopBits=1// 停枯陪止位数:0-1位 1-1.5位 2-2位SetCommState(hCom, &myDCB)}else{
MessageBox("端口无法打开"没世蠢)
return}// 2.发送数据WriteFile(hCom, &datas, Len, NULL, NULL)// 3. 读缓冲区并处理收到的数据ReadFile(hCom, &myByte, Len, 返拍NULL, NULL)
len=safearray_inp.GetOneDimSize()/樱亮州/得到有效的数据长度for(k=0k<lenk++)
safearray_inp.GetElement(&k,rxdata+k)
这里有问题,脊蔽你想一下,假如键颂你的数据很多,超出了你的rxdata容量(rxdata只有512字节),这里就会把栈写坏了嘛,这里拿到了len后要做一下判断,不能直接safearray_inp.GetElement(&k,rxdata+k)
MFC的COM控岁山件,你需要做的就是在你自己的电脑上帆亮搜索到这个文件:MSCOMM32.OCX找到之后复制乎轿中到另一台机器的c:/windows/system32下,然后运行regsvr32 mscomm32.ocx 命令,就可以了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)