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