做了一个串口助手,想实现十六进制发送,但是待发送的数据转成16进制后出现乱码
void CMXC18083SDlg::OnBnClickedButton2()//“发送数据”单击事件
{
//默认方式是十六进制手动发送
//TODO: 在此添加控件通知处理程序代码
CString temp;
UpdateData(true);
temp = m_strSend;//"发送"显示编辑框
temp = ChangeCharstr2Hexstr(temp);//十六进制发送
if (temp.GetLength())//发送编辑框有内容
{
u2clas.WriteToPort((char*)temp.GetBuffer(temp.GetLength()), temp.GetLength());
UpdateData(false);
}
}
char CMXC18083SDlg::CombineHexChar(char CharH, char CharL)
{
char result;
CString temp;
char result1;
int num1;
int num2;
int num3;
if (CharH >= '0' && CharH <= '9') result = (CharH - '0');
else if (CharH >= 'a'&& CharH <= 'f') result = (CharH - 'a' + 10);
else if (CharH >= 'A'&& CharH <= 'F') result = (CharH - 'A' + 10);
else result = 0;
if (CharL >= '0' && CharL <= '9') result1 = (CharL - '0');
else if (CharL >= 'a' && CharL <= 'f') result1 = (CharL - 'a' + 10);
else if (CharL >= 'A' && CharL <= 'F') result1 = (CharL - 'A' + 10);
else result1 = 0;
num1 = result;
num2 = result1;
num3 = num1 * 16 + num2;
return (char)num3;
}
大佬们求助!!!!!!!!!!谢谢大佬