亿加合和智能车制作

标题: 在visualscope虚拟示波器上遇到了点问题 [打印本页]

作者: huster_tjs    时间: 2014-3-16 14:18
标题: 在visualscope虚拟示波器上遇到了点问题
本帖最后由 huster_tjs 于 2014-3-16 14:22 编辑

我现在用这个示波器遇到了一个困难,就是能够用串口接收数据,但是不显示波形;我看了很多人遇到了这个问题,都没有人能好好解答出来,希望在这里能够获得帮助!
我下面贴一下我的部分代码
这是串口输出代码:
        while(1)
        {
                buff2[0]=complement_filter((float) Read_Acc(),(float) Read_Gry());                                                                                                      //低字节数据                                      
                buff2[1]=0x00;                                            //高字节数据
                buff2[2]=Read_Acc();
                buff2[3]=0x00;
                buff2[4]=Read_Gry();
                buff2[5]=0x00;
                buff2[6]=0x00;
                buff2[7]=0x00;
                buff2[8] =CRC_CHECK(buff2, 8)&0x00ff;                             //将第9个数据赋上CRC的低字节
                buff2[9] =(CRC_CHECK(buff2, 8)&0xff00)>>8;                    //第10数据附上CRC的高字节


                for(i=0;i<10;i++)                                                            //连续输入十个数据
                {
                SBUF=buff2; //向串口送出数据这10个字节数据
                while(TI==0);  //确认发送完成
                TI=0;
                }
        delay(50);

这是校验码第九位和第十位代码:
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;
        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);
}
不知道怎么就不显示波形,昨天搞了一天没有搞出来,都伤心死了。。





作者: 机遇    时间: 2014-3-16 17:10
心情不错帮你一下


程序

float OutData[4] = { 0 };

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);
  databuf[8] = CRC16%256;
  databuf[9] = CRC16/256;
  
  for(i=0;i<10;i++)
    uart_putchar(databuf[i]);
}


发送
      OutData[0] = g_fGravityAngle;
       OutData[1] = g_fGyroscopeAngleIntegral;
       OutData[2] = g_fGyroscopeAngleSpeed;
       OutData[3] = VOLTAGE_GRAVITY_Z;      
       OutPut_Data();


自己写个发送函数 uart_putchar(databuf[i]);

作者: huster_tjs    时间: 2014-3-16 20:37
原来这东西这么难搞。。。他的数据是从屏幕最尾处开始的,而且输出的波形很小很小,基本看不见,
我将数据放大50倍之后才能看见波形。。。
不知道你们是不是这样的?
最蛋疼的是想要看到波形要不断的自己拖动屏幕

谢谢你的回答!

作者: 飘o(≧v≦)o    时间: 2014-3-19 21:19
机遇 发表于 2014-3-16 17:10
心情不错帮你一下

赞一个~

作者: zfenggo    时间: 2014-3-19 21:43
楼主,现在你的示波器搞好了没?我也想用这软件,但是不懂用啊!真心求教。
作者: huster_tjs    时间: 2014-3-20 13:01
搞好了
我qq515874417
作者: huster_tjs    时间: 2014-3-20 13:02
zfenggo 发表于 2014-3-19 21:43
楼主,现在你的示波器搞好了没?我也想用这软件,但是不懂用啊!真心求教。

搞好了,可以加我qq515874417

作者: fancy0xue    时间: 2014-6-18 19:22
huster_tjs 发表于 2014-3-16 20:37
原来这东西这么难搞。。。他的数据是从屏幕最尾处开始的,而且输出的波形很小很小,基本看不见,
我将数据 ...

楼主有两种解决办法,
1:设置屏幕上的点数
2:提高波特率,在短时间内发送更多的数据。

由于试用版波特率低,确保每次发送的时间间隔足够长。
要想提高波特率,可上item.taobao.com/item.htm?id=39601328620购买。
上面还能下载到最新试用版及帮助文件。

作者: fancy0xue    时间: 2014-6-18 19:26
SBUF=buff2; //向串口送出数据这10个字节数据
应该改成
SBUF=buff2; //向串口送出数据这10个字节数据

由于试用版波特率低,确保每次发送的时间间隔足够长。
要想提高波特率,可上item.taobao.com/item.htm?id=39601328620购买。
上面还能下载到最新试用版及帮助文件。
还能获得更快更及时的帮助。

作者: only冰冰棒    时间: 2014-10-18 20:41
为什么我这个虚拟示波器在我电脑上用不起来?
作者: 夏日之恋    时间: 2015-3-28 10:43
机遇 发表于 2014-3-16 17:10
心情不错帮你一下

请问一下那个unsigned short CRC_CHECK(unsigned char *Buf, unsigned char CRC_CNT)  这个函数是个什么样的程序 起到什么样的功能谢谢

作者: 机遇    时间: 2015-3-29 14:33
夏日之恋 发表于 2015-3-28 10:43
请问一下那个unsigned short CRC_CHECK(unsigned char *Buf, unsigned char CRC_CNT)  这个函数是个什么样 ...

CRC校验,给上位机校验用的 生成一个CRC校验码

作者: 夏日之恋    时间: 2015-3-30 14:22
机遇 发表于 2015-3-29 14:33
CRC校验,给上位机校验用的 生成一个CRC校验码

恩谢谢

作者: 夏日之恋    时间: 2015-3-30 19:34
我用你这个程序来设计个实验想在虚拟示波器显示波形 在串口助手能接受到程序发送的hex格式的数字 但是在虚拟示波器上不能够显示 不知道你遇没遇到这个问题 请教一下 谢谢
作者: 夏日之恋    时间: 2015-3-31 21:18
fancy0xue 发表于 2014-6-18 19:22
楼主有两种解决办法,
1:设置屏幕上的点数
2:提高波特率,在短时间内发送更多的数据。

如何设置屏幕上的点数请教一下谢谢    希望能够解答

作者: caoling    时间: 2015-4-8 19:08
only冰冰棒 发表于 2014-10-18 20:41
为什么我这个虚拟示波器在我电脑上用不起来?

你好,请问你现在还在用虚拟示波器么??可以发一份给我么?~

作者: SPY。    时间: 2015-4-10 13:55
机遇 发表于 2014-3-16 17:10
心情不错帮你一下

大哥,你发送的uart_putchar(databuf)是串口需要发送的数据么???

作者: SPY。    时间: 2015-4-10 13:55
caoling 发表于 2015-4-8 19:08
你好,请问你现在还在用虚拟示波器么??可以发一份给我么?~

你的虚拟示波器搞好没呀

作者: caoling    时间: 2015-4-25 13:58
SPY。 发表于 2015-4-10 13:55
你的虚拟示波器搞好没呀

好了,我发现是win7不兼容的问题,设置一下兼容性就好了

作者: 东皇太一    时间: 2015-11-3 21:47
机遇 发表于 2015-3-29 14:33
CRC校验,给上位机校验用的 生成一个CRC校验码

请问,这个函数要怎么用,用不用假如主函数中

作者: 机遇    时间: 2015-11-4 09:17
东皇太一 发表于 2015-11-3 21:47
请问,这个函数要怎么用,用不用假如主函数中

发送函数已经调用了

作者: 啊啊啊啊啊啊1    时间: 2017-4-24 21:05
机遇 发表于 2015-11-4 09:17
发送函数已经调用了

请问怎样改协议才能将发送方式变为DMA传输?新手.....
作者: znjqr    时间: 2017-4-25 11:11
感恩无私的分享与奉献





欢迎光临 亿加合和智能车制作 (http://www.znczz.com/) Powered by Discuz! X3.2