MFC编写的串口通信程序,接收不到数据???

gxxtjy CSDN会员 gxxtjy 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
最近用基于MSComm控件,用MFC编写了一个串口收发数据的小程序!单片机的程序就是,接收上位机发送的数据,并发回给上位机。串口调试助手测试成功。但是我用自己编的串口界面测试时,发送框的数据可以发送,但是接受框的数据不能显示!下位机单片机的RXD管脚有数据输入,TXD管脚有数据输出,(用示波器测试)。下面是串口响应代码:
void CSCommTestDlg::OnComm()
{
// TODO: Add your control notification handler code here
VARIANT variant_inp;
COleSafeArray safearray_inp;
LONG len,k;
BYTE rxdata[2048]; //设置BYTE数组 An 8-bit integerthat is not signed.
CString strtemp;
if(m_ctrlComm.GetCommEvent()==2) //事件值为2表示接收缓冲区内有字符
{ ////////以下你可以根据自己的通信协议加入处理代码
variant_inp=m_ctrlComm.GetInput(); //读缓冲区
safearray_inp=variant_inp; //VARIANT型变量转换为ColeSafeArray型变量
len=safearray_inp.GetOneDimSize(); //得到有效数据长度
for(k=0;k<len;k++)
safearray_inp.GetElement(&k,rxdata+k);//转换为BYTE型数组
for(k=0;k<len;k++) //将数组转换为Cstring型变量
{
BYTE bt=*(char*)(rxdata+k); //字符型
strtemp.Format("%c",bt); //将字符送入临时变量strtemp存放
m_strRXData+=strtemp; //加入接收编辑框对应字符串
}
}
UpdateData(FALSE); //更新编辑框内容
}
求高手予以指点,不胜感激!
...全文

相关推荐

MFC实现串口通信16进制发送接收

利用MFC实现串口通信,用到MSCOMM32控件,能控制发送的时间,最短1ms,同时支持16进制和字符型的接收和发送,功能很强大,基于VS2010编写,研究MFC串口通信的同学值得拥有!

种花豹子

MFC串口通信设置及发送、中断接收程序

前一段做了个串口通信小软件,就是现实利用上位机软件通过串口通信对下位机(单片机)通信,校时LED点阵万年历,省去按键调节的麻烦,

皓月盈江

深入解析基于MFC的串口通信程序设计

类是MFC(Microsoft Foundation Classes)中用于串口通信的一个封装好的类。它提供了一系列方便的接口来处理串口的各种操作,包括打开串口、设置串口参数、读取串口数据、写入串口数据以及处理串口事件等。这些操作通过简单的函数调用就能完成,极大地简化了串口通信的编程工作。开发者在使用类时,需要首先包含它的头文件。该类基于Windows API实现,因此,它适用于需要在Windows环境下进行串口通信的应用程序。

年近半百

VS2010之MFC串口通信的编写教程

VS2010之MFC串口通信的编写教程,详细参考:http://blog.csdn.net/peter_jjh/article/details/77294592

Peter_J

VS2017基于MFC 串口通信上位机程序

本资源是基于开发平台VS2017开发的MFC串口通信上位机程序,,该程序debug x86编译平台,可自动识别串口并连接,接受发送数据。

微澜111
评论 13
收藏 已收藏
分享
返回顶部
gxxtjy CSDN会员
硬件/系统 2,644 成员 17,229 内容