VC串口传来的数据

我在编一个串口通信的界面。要求两台计算机通过串口传输数据。在串口调试助手中输入一些数如:123456,在另一台计算机中的运行程序,要显示出传来的数据。可是每次总是显示乱码... 我在编一个串口通信的界面。要求两台计算机通过串口传输数据。在串口调试助手中输入一些数如:12 34 56,在另一台计算机中的运行程序,要显示出传来的数据。可是每次总是显示乱码,而不显示传来的数据。这是怎么回事呢?是因为类型转换的问题吗?这是我的程序:
void CMySerialComDlg::OnSet()
{
// TODO: Add your control notification handler code here
UpdateData();
m_com.MakeUpper();//变成大写字母
if(m_com!="COM1"&&m_com!="COM2"&&m_com!="COM3"&&m_com!="COM4")
{
AfxMessageBox("不正确的串口号,请重新输入串口号!");
m_com="COM1";//默认为com1?
UpdateData();
return;
}
if(m_open)
{
m_ComConfig.CloseConnection();//
m_open=FALSE;//
}
char a[2]={m_com[3],'\0'};//
int i=atoi(a);//将字符型转换为整型
m_ComConfig.Set(i);//
if(m_ComConfig.OpenConnection()==FALSE)//
{
AfxMessageBox("无法打开该串口!");
m_com="COM1";
UpdateData(FALSE);
return;
}
else
{
AfxMessageBox("该串口已经被成功打开!");
}
m_open=TRUE;
}

void CMySerialComDlg::OnSend()
{
// TODO: Add your control notification handler code here
char buffer [1024];
int length=GetDlgItemText(IDC_SEND_EDIT,buffer,1024);

if(m_open)
{
if(::WriteCommBlock(m_ComConfig,buffer,length)==FALSE)//
{
AfxMessageBox("没有连接串口线!");
}
}
else
{
AfxMessageBox("该串口没有正确打开,请先设置串口!");
}
}

void CMySerialComDlg::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
char buffer[1024];
ZeroMemory(buffer,1024);//将字符串结束,否则会显示烫烫烫,(ZeroMemory)是清空指定内存为零
buffer[0]='\0';
if(::ReadCommBlock(m_ComConfig,buffer,1024)!=0)
{
m_receive+=buffer;
UpdateData(FALSE);

}
CDialog::OnTimer(nIDEvent);
}

BOOL CMySerialComDlg::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: Add your specialized code here and/or call the base class
return CDialog::PreCreateWindow(cs);
}

void CMySerialComDlg::OnOK()
{
// TODO: Add extra validation here
KillTimer(1);
if(m_ComConfig.IsConnected())
m_ComConfig.CloseConnection();
CDialog::OnOK();
}
哪位大侠帮我看看啊?谢谢拉!
展开
 我来答
百度网友82fde46
2009-01-02 · 超过10用户采纳过TA的回答
知道答主
回答量:33
采纳率:0%
帮助的人:0
展开全部
数据是以字符格式传输的还是以16进制传输的,问题多半出在这,具体哪设置忘了,书上应该有。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式