怎么用MFC使用API函数来做串口通信

怎么用MFC使用API函数来做串口通信,第1张

示例,仅供参考:

// 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 命令,就可以了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12294521.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存