智能车制作

标题: 虚拟示波器出问题了。。。 [打印本页]

作者: 我的阿我    时间: 2014-10-30 21:55
标题: 虚拟示波器出问题了。。。
事情是这样的,买了陀螺仪,所有的口都插上去了,然后在真实的示波器上发出了正常的波形(一路),用串口助手看也能看出是正常的(摇晃陀螺仪从0到255的变化),但是问题来了!虚拟示波器就不行,倒不是不显示波形,它是只以0这个数值按时间的推移往前走。。。如图,,,蛋疼中求告知

作者: qq1358381353    时间: 2014-10-30 22:03
串口有数据,你上位机看不见,你与上位的通信代码看看有写错啊。
作者: zhou1994    时间: 2014-10-30 22:11
用的iocomp控件,你有耐心看它刷新完一次就知道了,第二次开始就有图了
作者: 我的阿我    时间: 2014-10-30 22:12
qq1358381353 发表于 2014-10-30 22:03
串口有数据,你上位机看不见,你与上位的通信代码看看有写错啊。

i can promise ,no wrong....

作者: 我的阿我    时间: 2014-10-30 22:13
zhou1994 发表于 2014-10-30 22:11
用的iocomp控件,你有耐心看它刷新完一次就知道了,第二次开始就有图了

?????什么意思

作者: zhou1994    时间: 2014-10-30 22:17
我的阿我 发表于 2014-10-30 22:13
?????什么意思

这是用的iocomp控件做的,你多看一会,你就能看到有波形,我之前自己做上位机也有这个问题

作者: 头上两只角    时间: 2014-10-30 22:24
我也用这个。。。  感觉应该没问题。。。。
作者: 我的阿我    时间: 2014-10-30 22:27
头上两只角 发表于 2014-10-30 22:24
我也用这个。。。  感觉应该没问题。。。。

可是他出问题了呀

作者: 纯洁@麻花    时间: 2014-10-30 22:29
你用的是DATASCOPE么。。。如果是的话,你串口里的数据单单只是陀螺仪数据的话那示波器显示就是0,因为有发送协议。。。可以再看看你的串口数据应该是校验帧+数据+结尾这么个类似的结构
如果你不用的不是。。。我以上就是胡说的。。。
作者: BYu    时间: 2014-10-31 09:40
1.程序中有没有加入示波器的协议代码?
2.串口发送的函数有没有问题?
3.陀螺仪有没有问题
可以先定义四个通道发送的数据,然后观察一下示波器是不是定义的数据
作者: 动感小麦兜    时间: 2014-10-31 12:20
重新从论坛上下一个,以前也遇到类似的问题,后来不知怎地就解决了
作者: 沉默的萝卜    时间: 2014-10-31 21:47
看看你的协议代码部分。。/************************串口示波器握手程序******************/

unsigned short CRC_CHECK(unsigned char *Buf, unsigned char CRC_CNT)
{
    unsigned short CRC_Temp;
    unsigned char i,j;
    CRC_Temp = 0xffff;

    for (i=0;i<CRC_CNT; i++){      
        CRC_Temp ^= Buf[i];
        for (j=0;j<8;j++) {
            if (CRC_Temp & 0x01)
                CRC_Temp = (CRC_Temp >>1 ) ^ 0xa001;
            else
                CRC_Temp = CRC_Temp >> 1;
        }
    }
    return(CRC_Temp);
}

void OutPut_Data(void)
{
  int temp[4] = {0};
  unsigned int temp1[4] = {0};
  unsigned char databuf[10] = {0};
  unsigned char i;
  unsigned short CRC16 = 0;
  for(i=0;i<4;i++)
  {
   
    temp[i]  = (int)OutData[i];
    temp1[i] = (unsigned int)temp[i];
   
  }
   
  for(i=0;i<4;i++)
  {
    databuf[i*2]   = (unsigned char)(temp1[i]%256);
    databuf[i*2+1] = (unsigned char)(temp1[i]/256);
  }
  
  CRC16 = CRC_CHECK(databuf,8);
作者: 我的阿我    时间: 2014-11-1 09:17
纯洁@麻花 发表于 2014-10-30 22:29
你用的是DATASCOPE么。。。如果是的话,你串口里的数据单单只是陀螺仪数据的话那示波器显示就是0,因为有发 ...

是VisualScope。。。。。。

作者: 我的阿我    时间: 2014-11-1 09:26
沉默的萝卜 发表于 2014-10-31 21:47
看看你的协议代码部分。。/************************串口示波器握手程序******************/

unsigned s ...

没错。。。。。师兄就是用的这个代码。。。可我的现在显示太不正常了你看。。。

作者: Legendary    时间: 2015-1-21 10:54
看一看再说




欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2