• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >vc/mfc > MSComm无法发送数据

MSComm无法发送数据

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-04

佚名通过本文主要向大家介绍了vb mscomm 接收数据,mscomm32.ocx,mscomm32.ocx下载,mscomm,mscomm控件使用详解等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: MSComm无法发送数据
描述:

在写个画图软件,现在想通过串口将所作的图的数据发给下位机,目前我采用串口精灵进行数据调试,但我上位机发送数据时就出错了,是什么原因呢?我将我的代码贴在下面,高手给看下吧。
我的MSComm控件放在程序主对话框上,所以在view创建时创建的控件,下面是控件的初始化:
int CDEMOView::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
if (CView::OnCreate(lpCreateStruct) == -1)
return -1;
// TODO: Add your specialized creation code here
    m_MSComm.Create(NULL,0,CRect(0,0,0,0),this,IDC_MSCOMM);//创建控件
m_MSComm.SetCommPort(m_strComm);//选择COM
//m_MSComm.SetCommPort(1);
m_MSComm.SetInBufferSize(1024);//接收缓冲区大小
m_MSComm.SetOutBufferSize(1024);//发送缓冲区大小
m_MSComm.SetInputLen(0);//设置当前接收区数据长度为0,表示全部读取
m_MSComm.SetInputMode(0);//以文本格式(ASCII)取回数据
m_MSComm.SetRThreshold(1);//表示一有数据就开始接收数据的OnComm件事
m_MSComm.SetSettings(m_strBaudRate + "," + CString(m_strParity) + "," +
  m_strDataBits + "," + m_strStopBits);//设置波特率,校验位,数据位,停止位
 //   m_MSComm.SetSettings("9600,N,8,1");
if(!m_MSComm.GetPortOpen())//如果串口没有打开则打开
        m_MSComm.SetPortOpen(TRUE);//打开串口
else
AfxMessageBox("串口未打开!");//打开失败弹出提示对话框
m_MSComm.GetInput();//先预读缓冲区以清除残留数据
return 0;
}
我现在只要求发送数据,没涉及接收数据,那OnOnCommMscomm()是不是如下面写:
void CDEMOView::OnOnCommMscomm() 
{
// 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_MSComm.GetCommEvent()==2)     //事件值为2表示接收缓冲区内有字符
{
variant_inp = m_MSComm.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++)
{
BYTE bt=*(char*)(rxdata+k);
strtemp.Format("%c",bt);
}
}
}
下面是发送函数,其中data是一个数据结构的地址
void CSerial::senddata(char* data, int len)
{
    m_MSComm.SetOutput(COleVariant(data));
}
我进行调试的时候到发送数据这就出现问题了,无法执行,不知道程序中哪出问题了,请高手给看看,谢谢了!急!


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 请教mscomm的问题数据发送的事件不触发
  • 求助:MSComm接收数据感谢!
  • VCMFC如何接收VB写的COM传来的事件
  • 关于mscomm的多串口数据的发送和接收
  • mscomm不能接收到数据
  • 关于MSComm连续发送多次数据,如何接收每次的数据而不是一次全部接收?
  • 通过mscomm接收到gps数据之后到底怎么处理成经纬度
  • 紧急求助:MSComm串口通信数据接收不全问题?
  • 使用MSCOMM做串口通信的数据接收问题
  • 急!急!急!急!mscomm无法接收空字符

相关文章

  • 2017-06-05 为什么在线程中调用AfxGetMainWnd->PostMessageWM_DISPLAY,0,0;会出现内存访问错误?
  • 2017-06-04 C++写COM组件,IClassFactory::LockServer()如何使用?
  • 2017-06-05 vc的Shockwaveflash控件如何自动建立socket
  • 2017-06-04 在VC中,如何获得一个Excel文档中已使用的表格最大行数和最大列数
  • 2017-06-05 多个线程如何访问同一个控件
  • 2017-06-04 VC制作的COM组件,编译成DLL后,怎样生成CAB文件,放到网页中<OBJECT>里面,就可以自动下载?
  • 2017-06-04 ?如何在IE中用javascript对ActiveX中的某个属性赋值?
  • 2017-06-05 请问如何让microsoftwebbrowser不加载网页,而是显示我设置的一些文字及图片。
  • 2017-06-05 两个线程共用一个CList,一个加一个取,需要用互斥信号吗?
  • 2017-06-04 COM接口设计

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 请教一个mediaplayer控件的问题,达人请进
    • activex本地和外网有什么区别呢?
    • MFC做的ActiveX,怎么调用javascript
    • ATL高手请进-__不好意思,只有这么多分了)
    • 熟悉ATLServer和WebService的朋友请帮忙
    • LPWSAOVERLAPPED是什么类型来的?
    • GetActiveObject取得想要的进程问题
    • activeX树控件问题,(treeview)高手指点
    • 一个困扰了我很久的问题关于音频文件的播放
    • 由程序中的IDC_怎么找到这个控件在那个对话框?

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有