fr1995 2016-04-29 13:25 采纳率: 0%
浏览 1795

stm32不停地发送一个字节的数据,mfc编写的上位机接收到了但是显示乱码

用MFC写了一个串口接收的函数,为了测试,单片机stm32每隔一秒不停地发送同一个数,比如是0x32,想显示在接收框里面,但是每次显示都是乱码,如果以16进制显示就是8位16进制码。
设置断点调试了一下,发现bt是成功接收到了的,但是以cstring显示就乱码了,为什么呢?
图片说明

代码如下:
void C无人机地面控制终端Dlg::OnCommMscomm1()
{
// TODO: 在此处添加消息处理程序代码
VARIANT VARIANT_Input;
COleSafeArray SafeArray_Input;
LONG len, k;

BYTE RXData[1024];
CString strtemp ;
if (m_mscom.get_CommEvent() == 2)
{
VARIANT_Input = m_mscom.get_Input(); //读缓冲区
SafeArray_Input = VARIANT_Input; //VARIANT型变量转换为COleSafeArray型变量
len = SafeArray_Input.GetOneDimSize();
for (k = 0; k< len; k++)
SafeArray_Input.GetElement(&k, RXData + k); //转换为BYTE型数组
for (k = 0; k < len; k++)
{
char bt = (char)(RXData + k);
strtemp.Format(_T("%c", bt));
m_EditReceive += strtemp; // 接收到编辑框里面
}
m_EditReceive += "\r\n";
UpdateData(false);

    m_Edit.SetSel(-1, -1);
    this->SetDlgItemTextW(IDC_EDIT1, m_EditReceive);//将m_EditReceive内容显示到ID为IDC_EDIT1的编辑框的最后位置
    m_Edit.LineScroll(m_Edit.GetLineCount() - 1, 0);//将垂直滚动条滚动到最后一
}

}

查了好久了也不知道为什么,求问,不甚感激!

  • 写回答

1条回答

  • Lov_NinGx 2016-04-29 13:41
    关注

    这个问题比较简单,但是操作起来有点难,问题出在Format,编码的问题。这个可以参考,http://bbs.csdn.net/topics/390337326

    评论

报告相同问题?

悬赏问题

  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试
  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元