中易网

我照着visualC++/turboC串口通信编程实践写的接受数据的程序不能用我有检查串口是没有问题的求解

答案:4  悬赏:60  
解决时间 2021-12-12 20:09
void CShiyan3Dlg::OnOnComm()
{
UpdateData(FALSE);

// TODO: Add your control notification handler code here
VARIANT variant_inp;
COleSafeArray safearray_inp;
LONG len,k;
BYTE rxdata[2048]; //设置BYTE数组
CString strtemp;

if(m_ctrlComm.GetCommEvent()==2) //事件值为2表示接收缓冲区内有字符
{
variant_inp=m_ctrlComm.GetInput(); //读缓冲区
safearray_inp=variant_inp; //VARIANT型变量转换为ColeSafeArray型变量
len=safearray_inp.GetOneDimSize(); //得到有效数据长度
for(k=0;k<len;k++)
safearray_inp.GetElement(&k,rxdata+k);//转换为BYTE型数组
for(k=0;k<len;k++) //将数组转换为Cstring型变量
{
BYTE bt=*(char*)(rxdata+k); //字符型
strtemp.Format("%c",bt); //将字符送入临时变量strtemp存放
m_strEditRXData+=strtemp;
}
}
else
{
AfxMessageBox("无法接受数据");
}

UpdateData(FALSE); //更新编辑框内容

}
串口没问题 我开两个串口助手可以相互接受 数据 但是 自己写的这个接受数据的程序不能用 会一直弹出 无法接受数据 的内容框。无法理解 求作答 感谢各位大神 编译的时候 程序是没有问题的 就是不能接受 。。。
最佳答案
不要在串口事件处理中使用对话提示框,如果想看到信息,可以用一个文本框来显示信息
既然这个事件已经响应了,就说明串口中有事件发生,你可以输出事件的值,查找原因

编译能通过,不代表程序没有问题.
把代码
else
{
AfxMessageBox("无法接受数据");
}

改成
else
{
文本框显示m_ctrlComm.GetCommEvent()的值;

// 或者提取inbuffer的内容到文本框中
}
全部回答
在 if(m_ctrlComm.GetCommEvent()==2) //事件值为2表示接收缓冲区内有字符 这一句打个断点,调试一下,看接收到的事件值是否正确
似乎没有视频 但 有 pdf 电子文档,扫描件 需要 可以 联系
串口接收是按字节算的,你按字节从缓冲区读取走。不要定义这么大个缓冲区了,实际上是木有用的。串口每来一个数据,SCOMM插件就会发出一个事件信号。 你说会弹出无法接收这个框框。那就是事件2在你点击时还未出现。这说明,你去看下发出事件2的那段代码。 如果实在不行,请使用API自己做,不要使用SCOMM插件。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
计算机管理控制台中的设备管理器不见了
右水派出所办公地址在什么地方,我要处理点事
排头的意思是什么?排头的释义是什么啊?
数学必修二立体几何判断命题
院内停车住宿(鄂州鄂城)地址在什么地方,想过
妻梅子鹤的意思是什么啊?请解释下!
华盛顿会议有没有对战败国进行掠夺?
吹氣勝蘭的意思是什么?吹氣勝蘭的释义是什么
镀膜后,出现了硅片颜色不均,如何处理
文武坝镇派出所地址在什么地方,想过去办事
1、高铁为什么无坐还卖票阿2.无坐的是不是一
我属马,女的,66年5月28生人.养几条鱼好
用中信万通的软件,怎么看到成交量的柱状图?
显卡是独显好还是独显加集显好?小白不懂,顺
会昌县公安局森林分局中村派出所地址有知道的
推荐资讯
跟朋友交往贵在真诚就如俗语什么所说用古今贤
几社的意思是什么?几社的释义是什么啊?
织女和牛郎死了变成两只蝴蝶飞走了他们干什么
青浦采埃孚怎么样
八一面的意思是什么?八一面的释义是什么啊?
问:初学驾驶证的人到哪里注册?网上可以吗?
堅忍的意思是什么?堅忍的释义是什么啊?
翟门的意思是什么啊?请解释下!
凤翥鸾翔的意思是什么啊?请解释下!
暖眼的意思是什么啊?请解释下!
虚糜的意思是什么啊?请解释下!
芳醑的意思是什么啊?请解释下!
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?