搜索
bottom↓
回复: 4

【求助】数据采集程序遇到的问题

[复制链接]

出0入0汤圆

发表于 2011-5-26 12:01:24 | 显示全部楼层 |阅读模式
用的是BCB6.0,串口控件VICTOR1.3.5。波形显示为IOCOMP控件。

小弟做了个单片机数据采集系统的上位机程序,用的是串口,设置的波特率是9600,用的是16位的AD,单片机分高低字节发送数据给上位机,然后上位机程序将高低字节重新组合再转换为整型数,计算得到电压值。

采集的时候发现当速度比较低的时候,1s接收个几十个数据!这时候能把高字节跟低字节重新合并成16位数,然后再计算得到电压值。当单片机发送速度比较快时,大概设置为每秒钟1000之后,只能接收到数据,不能把数据重新整合,计算!

这是工作时候的图片

(原文件名:1.jpg)


下面是我的程序:

void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
  const BufSize = 4096;
  unsigned char Buffer[BufSize];
  int nBytes = 0;
  AnsiString s,l,m;
        //victor控件接收数据程序
  while((nBytes=YbCommDevice1->ReadPackage(Buffer,BufSize))>0)
  for(int i=0; i<nBytes; i++)
  {
    s += IntToHex(Buffer,2) + " ";
    l += IntToHex(Buffer[nBytes-i-1],2);
  }
  s = s.Trim();
  if(!s.IsEmpty())
   {
     Memo1->Lines->Add(s);  //显示从串口接收到的原始数据
     Buffer[BufSize]=0;
   }
   
   
   
   int StrLen;
   int temp;
        double volt;
   AnsiString voltvalue;
   StrLen = l.Length();
   if(StrLen == 4)
   {
    m =  (String( "0x")+ l ).ToInt();
    Memo2->Lines->Add(m);                        //显示经过整合,转换后的整型数
      temp = StrToInt(m);                       
      //计算电压
      if (temp>=0 && temp<=32767)
      {
          volt = ((double)temp/32768)*10;
      }
      else if(temp>32767 && temp<=65535)
      {
          temp = temp-65536;
          volt =((double)temp/32768)*10;
      }
      else
        volt = 0;
    voltvalue = FloatToStrF( volt,ffFixed,7,5);
    Memo3->Lines->Add(voltvalue);                 //显示计算得到的电压值
   }
    int i;
    iPlot1->Channel[0]->AddXY(i,volt);        //显示波形  
}

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2011-5-26 17:32:26 | 显示全部楼层
定时器,只接受数据,不要处理啊....

处理放在别的地方

出0入0汤圆

 楼主| 发表于 2011-5-26 21:36:33 | 显示全部楼层
回复【1楼】yajira
-----------------------------------------------------------------------

谢谢楼上!现在试试去!

出0入0汤圆

发表于 2011-5-29 19:40:11 | 显示全部楼层
兄弟你 好 ,你BCB6可以用数码管显示啊 ?我 很需要?我的QQ403994659
麻烦发个给我号 吗?万分感谢!!!

出0入0汤圆

发表于 2011-5-29 19:42:45 | 显示全部楼层
你还是整个协议嘛,你的好像没有协议,用MODBUS协议肯定没问题
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-18 16:09

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表