• 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编写串口通信,空字符接收后被忽略,如何解决?
代码如下: 
//set portnum
m_SATSCom.SetCommPort(SATSPort);
//read mode
m_SATSCom.SetInputMode(SATSInputMode);
//set commutation parameter
m_SATSCom.SetSettings(SATSSetting);
//begin to receive when there is one character in receive buffer
m_SATSCom.SetRThreshold(SATSByteNumToReceive);
//set the buffer size 
m_SATSCom.SetInBufferSize(SATSInBuffSize);
m_SATSCom.SetOutBufferSize(SATSOutBuffSize);
//clear the receive buffer
m_SATSCom.SetInBufferCount(SATSEmpty);
//open the port
if(!m_SATSCom.GetPortOpen())
{
m_SATSCom.SetPortOpen(TRUE);
}
else
{
AfxMessageBox("Can't open the port which has been opened");
}
////////////////////////////////////////////////
接收如下:
void CDlgComm::OnOnCommSatscom() 
{
// TODO: Add your control notification handler code here
int iEvent;
int iByteNum;
VARIANT InPut;
char str[ReceiveBuffLength];
char * str1=NULL;
CString str2;
char strData[100];//Save the right data, data will be copy to the struct in the end
int i;
iEvent=m_SATSCom.GetCommEvent();
switch(iEvent)
{
case 2:
//get the data num in the receive buff
iByteNum=m_SATSCom.GetInBufferCount();
if(iByteNum>0)
{
InPut=m_SATSCom.GetInput();
memcpy(str,InPut.parray->pvData,iByteNum);
}
i=0;
str1=str;
while(i<iByteNum)
{
i++;
str1++;
}
*str1='\0';
str2=(const char*)str;
m_DataFromSATS+=(LPCTSTR)str2;
^^^^^^^^^^^^^
}


解决方案1:

这是字符串的问题,与控件何干?
i=0;
str1=str;
while(i<iByteNum)
{
i++;
str1++;
}
*str1='\0';
str2=(const char*)str;
上面的程序在干嘛?
*(str + iByteNum) = 0;
m_DataFromSATS+=(LPCTSTR)str;
不就行了!


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

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

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

相关文章

  • 2017-06-04 怎样用_heapchk重现捕捉内存错误!急!!
  • 2017-06-04 如何在ActiveX控件线程里触发自定义事件
  • 2017-06-05 怎样让对话框程序启动不出现界面?
  • 2017-06-04 如何HookWininetAPI实现域名劫持、IP转向
  • 2017-06-04 HTTPSendRequest崩溃了,怎么解决
  • 2017-06-04 arx的接口问题
  • 2017-06-05 vs2008访问excel2007实现求值。
  • 2017-06-04 在ie中url显示xxxcom,可实际上访问的是yyycom怎么做?
  • 2017-06-05 如何把OBJ和H文件嵌入到工程中
  • 2017-06-04 如何做一个mmc管理工具

文章分类

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

最近更新的内容

    • 如果得用AfxBeginThread函数单开一个线程,不使用派生类?
    • 在ActiveX上面放置控件的问题
    • I'mComeBack
    • webbrowse,SetUIHandler后无法编辑,求解在线等。
    • 弄了一天也没整没明白,帮我看看,是缺什么库了?
    • 函数没执行完就返回了,晕
    • 200分请大家帮忙推荐几本书,关于控件和USB接口的!
    • 求助:对ODBC驱动程序DLL的调试
    • New操作在Release版本中出错了
    • VC工程插入一个OCX后,VC不能退出了

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

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