kangkai613 发表于 2010-12-8 09:30:54

想求个串口示波器便于调试用?站上yangyh75前辈提供的还是不回用啊

想求个串口示波器便于调试用?站上yangyh75前辈提供VisualScope的还是不回用啊

有没有不带CRC校验的示波器呢,多通道能后台还能收集数据的。

下面是前辈yangyh75的校验代码,我输出来的波形杂乱有错,不用的通道也有输出,请再给详细说明下,本人对C不是精通!
还有这个:排列方式是低八位在前,高八位在后(但是每个字节还是左到右是高位到低位排列);还是这个WORD的从左到右就是从低位到高位排列呢


void CRC16(unsigned char *Array, unsigned char *Rcvbuf,unsigned int Len)
{
unsigned intIX,IY,CRC;
CRC=0xFFFF;//set all 1

if (Len<=0)
CRC = 0;
else
{
Len--;    ?????这个是什么意思啊 ,都代表什么变量??????
for (IX=0;IX<=Len;IX++)
   {
    CRC=CRC^(unsigned int)(Array);
    for(IY=0;IY<=7;IY++)
    if ((CRC&1)!=0) CRC=(CRC>>1)^0xA001;      ?????这个是什么意思啊 ,都代表什么变量??????

    else CRC=CRC>>1;    //

   }
}
Rcvbuf = (CRC & 0xff00)>>8;//高位置
Rcvbuf = (CRC & 0x00ff);//低位置
}

qidaimengxing 发表于 2010-12-8 09:37:58

http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=4380322&bbs_page_no=1&bbs_id=3053

看看这个支持串口直接捕获和协议公开的串口通信

kangkai613 发表于 2010-12-8 10:55:44

CRC多项式怎么是A001

Clinging 发表于 2010-12-8 14:41:51

http://ourdev.cn/bbs/bbs_content.jsp?bbs_sn=4414133&bbs_page_no=1&bbs_id=1025

kangkai613 发表于 2010-12-9 09:13:23

谢谢两位 不过还是想问下通信协议,不接收地址数据,直接发送数据和CRC可以有显示吗

yangyh75 发表于 2010-12-9 13:29:01

还是我来解释一下吧:
1、关于函数void CRC16(unsigned char *Array, unsigned char *Rcvbuf,unsigned int Len)需要明白以下:
   a、*Array是数组Array的首地址,这个数组存放你所需要发送的4个通道数据,一个通道有高位和低位,所以4个通道需
      要8个unsigned char。
   b、*Rcvbuf是数组Rcvbuf的首地址,这个数组存放校验码,同样也是高位和低位。
   c、Len是你发送的位长,调用时指定为8就ok。

调用语句如下:CRC16(Array, Rcvbuf,8);

紧接着发送 Array数组,然后发送Rcvbuf数组,就ok了。

2、要使用哪个出口示波器应该将你的COM口设置为COM1,波特率设置为9600,因为这是不出钱的。

3、示波器的菜单栏的setup——communication protocol——设置为CRC16。


这样解释是否明白了,它要求每次发送10组数据,其中8组是你的4个通道数据,2组是校验码。

祝好运。

fancy0xue 发表于 2010-12-9 22:24:16

这个论坛怎么增加附件呢

kangkai613 发表于 2010-12-9 23:08:37

谢谢 yangyh75!!
以为要先接受电脑串口发过来的地址,再发送4个通道数据呢 ,现在看来不需要的,直接发数据就可

kangkai613 发表于 2010-12-10 13:13:04

现在的示波器还是没有波形显示,画面没有一点动作。设置没问题CRC16,COM1,9600。不过选CHECK SUM方式,有杂乱波形,选CRC16没显示。

我用串口调试观察 ,数据发送的正确,就是不知道CRC对不对,我设置的前8组数据每次都一样,为什么CRC的后两组的值还是一直变化,是这个问题吗?下面是我的程序,给纠正下!!!
void main()
{   
   InitSysCtrl();

   #ifdef FLASH
   MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart);
   InitFlash();                           
   #endif
   
   SpiInitGpio();
   SciaInitGpio();
   DINT;
   InitPieCtrl();
   IER = 0x0000;
   IFR = 0x0000;
   InitPieVectTable();
   ADCSetup();
   spi_init();
   SCIAInit();
   
   GpioDataRegs.GPADAT.bit.GPIO1 = 1;
   n=0;
   for(;;)
   {   //adcspi(8);            
       //spi_rdytx(rdata);
   //scitx(rdata);
       ADCTX();          这是对8组数据的设置,SCI-TX到。
       //crc_num();   
       //crc();
   CRC16();      CRC程序,求出CRC的两组数据。
      
       scitx_ready();       发送子程序 ,依次发送10组数据。
    }
}         


void ADCTX()
{   //Uint16 t,x;
    //t= AdcResult.ADCRESULT0;
//x=t*3/5;
    //sci_tx = x<<4;
//sci_tx = x>>4;
    //sci_tx=(t&0x0f80)>>7;
//sci_tx=t&0x007f;
sci_tx = 0xff;                     这是成每次都是一样的数据 ,共八组。
sci_tx = 0xff;
sci_tx = 0xff;
sci_tx = 0xff;
    sci_tx = 0x00;
    sci_tx = 0x00;
    sci_tx = 0x00;
    sci_tx = 0x00;
}

void CRC16()
{
    //unsigned short CRC;                  
    unsigned char i,j;
    CRC = 0xffff;

    for (i=0;i<10; i++){      
      CRC ^= sci_tx;
      for (j=0;j<8;j++) {
            if (CRC & 0x01)
                CRC = (CRC >>1 ) ^ 0xa001;
            else
                CRC = CRC >> 1;
      }                                                    CRC的子程序,把2组CRC数据排在后两组,第8和9组。
    }
   sci_tx=(CRC&0xff00)>>8;//高位
   sci_tx=(CRC&0x00ff);//低位
}


void scitx_ready()
{   int i;
    for(i=0;i<10;i++)
{
   while(SciaRegs.SCICTL2.bit.TXRDY != 1);                  串口发送 一次发送10组!!
   SciaRegs.SCITXBUF = sci_tx;
}
}

292302877 发表于 2012-5-6 11:27:13

想下载下来玩下,就是现在好像不能下载啊{:sad:}

sdxjgby 发表于 2012-5-6 12:12:19

记号            

kexiao 发表于 2013-1-10 11:12:00

kangkai613 发表于 2010-12-10 13:13 static/image/common/back.gif
现在的示波器还是没有波形显示,画面没有一点动作。设置没问题CRC16,COM1,9600。不过选CHECK SUM方式,有 ...

你当时这个搞定了没有?我现在也在弄这个,有点问题,请教你一下

wangjt1988 发表于 2013-1-10 11:22:11

搜搜我的一个,先凑活用着,这几天会有大手笔,所有平台上传开源,包括新上位机

fancy0xue 发表于 2013-5-15 06:17:30

VisualScope群321184302,串口示波器群,希望对你有帮助
页: [1]
查看完整版本: 想求个串口示波器便于调试用?站上yangyh75前辈提供的还是不回用啊