CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C++ Builder >  基础类

串口二进制数据的提取

楼主lly_oldf(溢出)2005-04-17 18:47:30 在 C++ Builder / 基础类 提问

用微软的MSComm控件读取串口的二进制数据,  
   
  例如:串口接收到的数据是0x68   0x01   0x68   0x02   0x33   0x21   0x11   0x13  
   
  接收到以后,把他们放在一个int   arr[8]数组中,使  
   
  arr[0]=0x68    
   
  arr[1]=0x01    
   
  arr[2]=0x68    
   
  arr[3]=0x02    
   
  arr[4]=0x33    
   
  arr[5]=0x21    
   
  arr[6]=0x11    
   
  arr[7]=0x13  
   
  应该如何编写代码?  
   
  希望大虾帮忙啊!! 问题点数:100、回复次数:5Top

1 楼lly_oldf(溢出)回复于 2005-04-17 20:28:33 得分 0

!!!!!!!!!救命啊~~~Top

2 楼genliter(许涵)回复于 2005-04-17 20:35:50 得分 30

这样  
  char   arr[8];  
  mscomm->read(arr,..这里的参数记不清了);  
  然后就读到arr里了.  
  arr的每个元素就是你收到的每个值,当然此时直接显示,显示的十进制的,你可以用  
  IntToHex转化成16进制显示.  
  Top

3 楼clong320(clong320)回复于 2005-04-18 11:11:25 得分 50

void   __fastcall   TForm1::MSComm1Comm(TObject   *Sender)  
  {  
    AnsiString   s;  
    int   rev_len;  
      OleVariant   RxBuff;  
      char   buffer[256];  
      RxBuff   =   VarArrayCreate(OPENARRAY(int,(0,256)),varByte);  
   
   
    MSComm1->RThreshold   =   0;  
   
    switch(MSComm1->CommEvent)  
    {  
      case   comEvReceive:  
                RxBuff   =   MSComm1->Input;  
                int   j=   RxBuff.ArrayHighBound(1);  
                for   (int   i   =   0;   i   <=   j;   i++)   buffer[i]=   RxBuff.GetElement(i);  
   
                rev_len   =   RxBuff.ArrayHighBound(1);  
                for(int   i   =   0;   i   <   rev_len;   i++)   Buffer[i]   =   RxBuff.GetElement(i);  
   
                for(int   i   =   0;   i   <   rev_len;   i++)   s   +=   IntToHex(Buffer[i],2)   +   "   ";  
                s   =   s.Trim();  
   
                if(!s.IsEmpty())   Memo1->Lines->Add(s);  
                break;  
    }  
    MSComm1->RThreshold   =   1;  
   
  }  
  Top

4 楼happyct(绿叶对大树的情怀)回复于 2005-04-18 11:24:25 得分 20

clong320的方法应该可用Top

5 楼lly_oldf(溢出)回复于 2005-04-18 11:37:08 得分 0

收到!虽然我自己已经解决了这个问题,但是还要谢谢各位!!!Top

相关问题

  • 串口按二进制数据发送
  • 串口接收二进制数据一问,高分相送
  • 和串口通讯的问题,二进制传输数据?
  • 串口发送二进制数据问题
  • SqlDataReder的二进制数据提取问题。vc++.net2003 + sql2000环境
  • 请问在二进制传输的串口通讯中怎么读数据?
  • 怎样从二进制文件中提取数据(C++或VC开发环境)
  • 如何使用MSCOMM控件读取串口二进制数据,并保存成二进制格式的文件!最好有代码!在线等候!!
  • 用二进制收到串口的数据后的处理,请大侠指点.急!
  • 我想往串口发二进制码

关键词

  • 数据
  • 串口
  • arr
  • rxbuff
  • mscomm
  • 显示

得分解答快速导航

  • 帖主:lly_oldf
  • genliter
  • clong320
  • happyct

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo