搜索
bottom↓
回复: 13

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

[复制链接]

出0入0汤圆

发表于 2010-12-8 09:30:54 | 显示全部楼层 |阅读模式
想求个串口示波器便于调试用?站上yangyh75前辈提供VisualScope的还是不回用啊

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

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


void CRC16(unsigned char *Array, unsigned char *Rcvbuf,unsigned int Len)
{
unsigned int  IX,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[IX]);
    for(IY=0;IY<=7;IY++)
    if ((CRC&1)!=0) CRC=(CRC>>1)^0xA001;        ?????这个是什么意思啊 ,都代表什么变量??????

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

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

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2010-12-8 09:37:58 | 显示全部楼层
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=4380322&bbs_page_no=1&bbs_id=3053

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

出0入0汤圆

 楼主| 发表于 2010-12-8 10:55:44 | 显示全部楼层
CRC多项式怎么是A001

出0入0汤圆

发表于 2010-12-8 14:41:51 | 显示全部楼层
http://ourdev.cn/bbs/bbs_content.jsp?bbs_sn=4414133&bbs_page_no=1&bbs_id=1025

出0入0汤圆

 楼主| 发表于 2010-12-9 09:13:23 | 显示全部楼层
谢谢两位 不过还是想问下通信协议,不接收地址数据,直接发送数据和CRC可以有显示吗

出0入0汤圆

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

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

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

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

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


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

祝好运。

出0入0汤圆

发表于 2010-12-9 22:24:16 | 显示全部楼层
这个论坛怎么增加附件呢

出0入0汤圆

 楼主| 发表于 2010-12-9 23:08:37 | 显示全部楼层
谢谢 yangyh75!!
以为要先接受电脑串口发过来的地址,再发送4个通道数据呢 ,现在看来不需要的,直接发数据就可

出0入0汤圆

 楼主| 发表于 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[0]到[7]。
       //crc_num();   
       //crc();
   CRC16();      CRC程序,求出CRC的两组数据。
        
       scitx_ready();       发送子程序 ,依次发送10组数据。
    }  
}           


void ADCTX()
{   //Uint16 t,x;
    //t= AdcResult.ADCRESULT0;
//x=t*3/5;
    //sci_tx[2] = x<<4;
//sci_tx[3] = x>>4;
    //sci_tx[4]=(t&0x0f80)>>7;
//sci_tx[5]=t&0x007f;
sci_tx[0] = 0xff;                     这是成每次都是一样的数据 ,共八组。
sci_tx[1] = 0xff;
sci_tx[2] = 0xff;
sci_tx[3] = 0xff;
    sci_tx[4] = 0x00;
    sci_tx[5] = 0x00;
    sci_tx[6] = 0x00;
    sci_tx[7] = 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[9]=(CRC&0xff00)>>8;//高位
     sci_tx[8]=(CRC&0x00ff);//低位
}


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

出0入0汤圆

发表于 2012-5-6 11:27:13 | 显示全部楼层
想下载下来玩下,就是现在好像不能下载啊

出0入0汤圆

发表于 2012-5-6 12:12:19 来自手机 | 显示全部楼层
记号              

出0入0汤圆

发表于 2013-1-10 11:12:00 | 显示全部楼层
kangkai613 发表于 2010-12-10 13:13
现在的示波器还是没有波形显示,画面没有一点动作。设置没问题CRC16,COM1,9600。不过选CHECK SUM方式,有 ...

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

出0入0汤圆

发表于 2013-1-10 11:22:11 来自手机 | 显示全部楼层
搜搜我的一个,先凑活用着,这几天会有大手笔,所有平台上传开源,包括新上位机

出0入0汤圆

发表于 2013-5-15 06:17:30 | 显示全部楼层
VisualScope群321184302,串口示波器群,希望对你有帮助
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-7-23 23:42

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

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