使用vs2010(c++) 使用serialport类与单片机实现通信 OnComm字符接收消息响应函数 一次只能接受一个字符 140

 我来答
千般幻
2015-08-19 · 超过23用户采纳过TA的回答
知道答主
回答量:75
采纳率:0%
帮助的人:39.1万
展开全部
你没贴代码,就当做你代码没问题,那就只能是字符宽度导致的,你接收字符的缓存是什么类型,你的项目的字符集,什么的都检查一下,换一下,宽窄字符,或者unicode与多字符集。
更多追问追答
追问
我是按照下面的代码做的 与单片机通信时只能接受一个字符 但是与串口调试助手通信时却可以接受多个字符 麻烦你帮我看
LONG CSmSerialPortDlg::OnComm(WPARAM ch,LPARAM port)
{
m_strRxMsg+=ch; //将接收到的字符存入编辑框对应的变量中
UpdateData(FALSE); //将接收到的字符显示在接受编辑框中
return 0;
}
追答
你用串口工具抓包,发现通信的时候是多个字符,但是接收通信内容的变量里面却只有一个字符是吗?
1,你先修改一下项目的字符集;
2,改变接收通信内容的变量类型,原来不是宽字符就改成宽字符,是宽字符,就改成窄字符。
3,参数传递正确吗?
第二种可能性比较大。我做串口通信的时候也遇到过这种问题。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式