智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 2308|回复: 14
打印 上一主题 下一主题

虚拟示波器出问题了。。。

  [复制链接]

28

主题

144

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2586
威望
1120
贡献
638
兑换币
702
注册时间
2014-2-17
在线时间
414 小时
毕业学校
安徽大学
跳转到指定楼层
1#
发表于 2014-10-30 21:55:53 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
事情是这样的,买了陀螺仪,所有的口都插上去了,然后在真实的示波器上发出了正常的波形(一路),用串口助手看也能看出是正常的(摇晃陀螺仪从0到255的变化),但是问题来了!虚拟示波器就不行,倒不是不显示波形,它是只以0这个数值按时间的推移往前走。。。如图,,,蛋疼中求告知

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

0

主题

2

帖子

0

精华

注册会员

Rank: 2

积分
88
威望
52
贡献
20
兑换币
22
注册时间
2014-3-9
在线时间
8 小时
毕业学校
重庆大学
15#
发表于 2015-1-21 10:54:45 | 只看该作者
看一看再说
回复 支持 反对

使用道具 举报

28

主题

144

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2586
威望
1120
贡献
638
兑换币
702
注册时间
2014-2-17
在线时间
414 小时
毕业学校
安徽大学
14#
 楼主| 发表于 2014-11-1 09:26:07 | 只看该作者
沉默的萝卜 发表于 2014-10-31 21:47
看看你的协议代码部分。。/************************串口示波器握手程序******************/

unsigned s ...

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

28

主题

144

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2586
威望
1120
贡献
638
兑换币
702
注册时间
2014-2-17
在线时间
414 小时
毕业学校
安徽大学
13#
 楼主| 发表于 2014-11-1 09:17:23 | 只看该作者
纯洁@麻花 发表于 2014-10-30 22:29
你用的是DATASCOPE么。。。如果是的话,你串口里的数据单单只是陀螺仪数据的话那示波器显示就是0,因为有发 ...

是VisualScope。。。。。。
回复 支持 反对

使用道具 举报

6

主题

207

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1781

优秀会员奖章活跃会员奖章

威望
1030
贡献
505
兑换币
479
注册时间
2014-4-20
在线时间
123 小时
毕业学校
湖北工业大学
12#
发表于 2014-10-31 21:47:37 | 只看该作者
看看你的协议代码部分。。/************************串口示波器握手程序******************/

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);
回复 支持 反对

使用道具 举报

41

主题

563

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4616
威望
2165
贡献
1183
兑换币
1355
注册时间
2013-9-6
在线时间
634 小时
毕业学校
山东交通学院
11#
发表于 2014-10-31 12:20:31 | 只看该作者
重新从论坛上下一个,以前也遇到类似的问题,后来不知怎地就解决了
回复 支持 反对

使用道具 举报

5

主题

151

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2250
威望
1174
贡献
710
兑换币
744
注册时间
2014-7-28
在线时间
183 小时
毕业学校
合肥工业大学
10#
发表于 2014-10-31 09:40:29 | 只看该作者
1.程序中有没有加入示波器的协议代码?
2.串口发送的函数有没有问题?
3.陀螺仪有没有问题
可以先定义四个通道发送的数据,然后观察一下示波器是不是定义的数据
回复 支持 反对

使用道具 举报

1

主题

293

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3329
威望
1699
贡献
954
兑换币
920
注册时间
2012-3-5
在线时间
339 小时
9#
发表于 2014-10-30 22:29:35 | 只看该作者
你用的是DATASCOPE么。。。如果是的话,你串口里的数据单单只是陀螺仪数据的话那示波器显示就是0,因为有发送协议。。。可以再看看你的串口数据应该是校验帧+数据+结尾这么个类似的结构
如果你不用的不是。。。我以上就是胡说的。。。
回复 支持 反对

使用道具 举报

28

主题

144

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2586
威望
1120
贡献
638
兑换币
702
注册时间
2014-2-17
在线时间
414 小时
毕业学校
安徽大学
8#
 楼主| 发表于 2014-10-30 22:27:42 | 只看该作者
头上两只角 发表于 2014-10-30 22:24
我也用这个。。。  感觉应该没问题。。。。

可是他出问题了呀
回复 支持 反对

使用道具 举报

93

主题

1166

帖子

0

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
7879

论坛元老奖章在线王奖章活跃会员奖章优秀会员奖章论坛骨干奖章

QQ
威望
4108
贡献
2161
兑换币
2705
注册时间
2013-8-14
在线时间
805 小时
7#
发表于 2014-10-30 22:24:38 | 只看该作者
我也用这个。。。  感觉应该没问题。。。。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-10-1 23:37 , Processed in 0.187904 second(s), 37 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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