串口调试助手怎样发送和接收中文

lee_guet 2011-10-04 04:52:43
如题所示,小弟最近在做一个串口调试助手,要求要发送和接收中文,没有思绪,不知道怎么做,希望大虾们能给点提示,说的相惜一下,万分感激啊 另外,现下使用的串口调试助手V2.2在发送大量的数据时会出现数据丢失,这个是怎么会事?麻烦给讲解一下
...全文
889 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
lee_guet 2011-10-05
  • 打赏
  • 举报
回复
我发送的代码是 //发送ASCII文本
{
m_Port.WriteToPort((LPCTSTR)m_strSendData); //发送数据
TX_count+=m_strSendData.GetLength(); //发送计数
}
接收端是 //以下是将接收的字符加在字符串的最后
//由于需要保存成文件,所以没有用List Control
int nLen=m_ctrlReceiveData.GetWindowTextLength();
m_ctrlReceiveData.SetSel(nLen, nLen);
m_ctrlReceiveData.ReplaceSel(str);
nLen+=str.GetLength();
望各位指点一下...
lee_guet 2011-10-05
  • 打赏
  • 举报
回复
谢谢各位对小弟的支持,我的这个小软件要求要中英文能同时显示。。。在发送时我用了SerialPort类中的WriteToPort函数,接收的时候是一个字节一个字节接收的,然后我考虑了一下使用isleadbyte函数,可是接收端仍然不显示...麻烦给解释下
5t4rk 2011-10-04
  • 打赏
  • 举报
回复
恩 发送的在网络中

都是字节序列

接收到的字节序列

想怎么解释就怎么解释

给楼主看个异步发送的部分代码

string hostname = Dns.GetHostName();
bytes = Encoding.UTF8.GetBytes("阳光游子:"+content.Text);
LocalSocket.BeginSend(bytes,
0,
bytes.Length,
SocketFlags.None,
new AsyncCallback(sendCallback),
LocalSocket);
list.Items.Add(DateTime.Now.ToString());
list.Items.Add("阳光游子:"+content.Text);
yby4769250 2011-10-04
  • 打赏
  • 举报
回复
发送的内容用管是中文还是英文吗?我只知道,发送的就是一个个二进制,或者是一个个的字节数据,传输的时候是不解释内容的,只有当你接收到数据之后,如何对这些二进制数据进行解析它就是什么数据,你要按ASCII码解析,它可能就是一些英文字符,你要按宽字符解析,它就有可能是中英文字符,一句话,传递给你的是一串二进制流,你可以用char buffer[n]或者wchar_t buffer[n]来解析

64,681

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧