智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 7835|回复: 38
打印 上一主题 下一主题

分享一个20通道的虚拟示波器

  [复制链接]

6

主题

49

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2315
威望
1187
贡献
724
兑换币
706
注册时间
2012-9-13
在线时间
202 小时
毕业学校
曲阜师范大学
跳转到指定楼层
1#
发表于 2018-5-22 14:24:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 垆边月晓 于 2018-5-22 14:54 编辑

小车调试时经常需要观察数据,常用的虚拟示波器有VisuaScope,匿名的地面站。visualscope操作方便,仅用鼠标就可以进行拖动和缩放,但是有波特率限制(破解版没有限制但兼容性不好)和通道限制(只能传输4通道,哪怕只用一组数据,也得把四个通道数据传完,非常占用CPU)。匿名的地面站功能很强大,通道数也很多,而且是免费的。但是个人觉得数据观察不太方便,不能任意缩放图像,只能按照选定窗口缩放,而且只可以放大不能缩小。为了更方便各位同学调试,把我写的分享一下。
该示波器有以下几个特点:   

               1.操作简单。仅用鼠标就可以操作界面:鼠标左键可以任意方向拖动图像,右键上下拖动可以分别缩放X、Y轴图像,滚轮整体缩放图像。双击鼠标自动跟踪波形。
               2.点击图像任意位置可以在左下角显示坐标。
               3.多达20个数据通道。如果数据量小,可以只用部分通道,节省串口传输时间。
               4.最高波特率支持500000,com口可以任意
               5.支持串口Hex和文本显示,可以缓存2^64字节数据。               6.免安装,直接打开运行。







附:

                                                    20通道数字示波器使用说明
                                                                                                                                                          Author:垆边月晓
通讯协议:
        0xAA+0xAA+CMD+LEN+DATA0...+DATAx+SUM;
        如:AA AA 01 0C 01 0A FF 9C 43 F9 4B 70 00 01 91 F5 85
其中,前两个字节AA是帧头,第三个字节0x01是帧命令CMD(CMD=0x01:通道1~通道10;CMD=0x02:通道11~通道20),
第四个字节0x0C是数据长度LEN,第五位至倒数第二位为数据,最后一位为和校验位。
和校验:从第一位到倒数第二位相加求和得到的一个字节作为校验。
操作说明:
        拖动图像:按住鼠标左键拖动
        缩放图像:按住鼠标右键拖动或者滑动滑轮
        自动跟踪波形:双击鼠标左键

参考例程:
#define BYTE0(dwTemp)       (*(char *)(&dwTemp))
#define BYTE1(dwTemp)       (*((char *)(&dwTemp) + 1))
#define BYTE2(dwTemp)       (*((char *)(&dwTemp) + 2))
#define BYTE3(dwTemp)       (*((char *)(&dwTemp) + 3))//0最低,3最高
void Data_Send(void)//备注:10个通道不必全用,如果只使用几个通道,其他通道可以删除(先删后面的通道),节省串口传输时间
{   
                unsigned char data_to_send[50];
        unsigned char _cnt=0;
        int  _temp;
                unsigned char sum = 0,i = 0;
        data_to_send[_cnt++]=0xAA;
        data_to_send[_cnt++]=0xAA;
        data_to_send[_cnt++]=0x01;
        data_to_send[_cnt++]=0;
        _temp = (int)(0);//通道1
        data_to_send[_cnt++]=BYTE1(_temp);//通道1
        data_to_send[_cnt++]=BYTE0(_temp);//通道1
        _temp = (int)(0);//通道2
        data_to_send[_cnt++]=BYTE1(_temp);//通道2
        data_to_send[_cnt++]=BYTE0(_temp);//通道2
        _temp = (int)(0);//通道3
        data_to_send[_cnt++]=BYTE1(_temp);//通道3
        data_to_send[_cnt++]=BYTE0(_temp);//通道3
         _temp = (int)(0);//通道4
        data_to_send[_cnt++]=BYTE1(_temp);//通道4
        data_to_send[_cnt++]=BYTE0(_temp);//通道4
        _temp = (int)(0);//通道5
        data_to_send[_cnt++]=BYTE1(_temp);//通道5
        data_to_send[_cnt++]=BYTE0(_temp);//通道5
        _temp = (int)(0);//通道6
        data_to_send[_cnt++]=BYTE1(_temp);//通道6
        data_to_send[_cnt++]=BYTE0(_temp);//通道6
                _temp = (int)(0);//通道7
        data_to_send[_cnt++]=BYTE1(_temp);//通道7
        data_to_send[_cnt++]=BYTE0(_temp);//通道7
                _temp = (int)(0);//通道8
        data_to_send[_cnt++]=BYTE1(_temp);//通道8
        data_to_send[_cnt++]=BYTE0(_temp);//通道8
                _temp = (int)(0);//通道9
        data_to_send[_cnt++]=BYTE1(_temp);//通道9
        data_to_send[_cnt++]=BYTE0(_temp);//通道9
                _temp = (int)(0);//通道10
        data_to_send[_cnt++]=BYTE1(_temp);//通道10
        data_to_send[_cnt++]=BYTE0(_temp);//通道10
        data_to_send[3] = _cnt-4;
        for( i=0;i<_cnt;i++)
                sum += data_to_send;
        
data_to_send[_cnt++] = sum;
        for(i=0;i<_cnt;i++)
                uart_putchar(UART1,data_to_send);
}












补充内容 (2018-5-22 15:40):
修复缩放bug,资源在3楼

补充内容 (2018-5-23 15:31):
最新版本v0.2.0增加了可任意通道接收浮点型数据,同时增加了数据显示系数,更方便调试!需要的请留言

补充内容 (2018-6-25 18:00):
v0.2.0资源见27楼

补充内容 (2018-6-25 18:06):
v0.2.0版本取消了exe加壳,打开速度会更快些

本帖子中包含更多资源

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

x
回复

使用道具 举报

6

主题

16

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
326
QQ
威望
174
贡献
106
兑换币
104
注册时间
2017-7-10
在线时间
23 小时
毕业学校
浙江海洋大学
2#
发表于 2018-5-22 14:34:58 | 只看该作者
给楼主顶一个
回复 支持 反对

使用道具 举报

6

主题

49

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2315
威望
1187
贡献
724
兑换币
706
注册时间
2012-9-13
在线时间
202 小时
毕业学校
曲阜师范大学
3#
 楼主| 发表于 2018-5-22 15:39:50 | 只看该作者
本帖最后由 垆边月晓 于 2018-5-22 15:54 编辑

修复一个bug:一直操作缩放时,左右边界重合会出现未知错误

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

6

主题

49

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2315
威望
1187
贡献
724
兑换币
706
注册时间
2012-9-13
在线时间
202 小时
毕业学校
曲阜师范大学
4#
 楼主| 发表于 2018-5-22 15:44:00 | 只看该作者
如果还遇到其他bug,请回复,我会第一时间修复
回复 支持 反对

使用道具 举报

4

主题

81

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1163
威望
575
贡献
408
兑换币
381
注册时间
2017-9-22
在线时间
90 小时
毕业学校
渣渣大学
5#
发表于 2018-5-22 16:05:20 | 只看该作者
顶一个
回复 支持 反对

使用道具 举报

10

主题

426

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4369

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

威望
1927
贡献
1278
兑换币
1341
注册时间
2017-7-20
在线时间
582 小时
6#
发表于 2018-5-22 19:09:45 | 只看该作者
顶帖顶帖
回复 支持 反对

使用道具 举报

1

主题

491

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3069
威望
1606
贡献
873
兑换币
1133
注册时间
2016-9-16
在线时间
295 小时
毕业学校
高中
7#
发表于 2018-5-22 19:26:45 | 只看该作者
膜拜大佬。
回复 支持 反对

使用道具 举报

0

主题

24

帖子

0

精华

高级会员

Rank: 4

积分
722
威望
374
贡献
236
兑换币
251
注册时间
2017-10-10
在线时间
56 小时
8#
发表于 2018-5-23 11:11:55 | 只看该作者
感谢大佬分享~~~~~~~~~~~~~~~~
回复 支持 反对

使用道具 举报

0

主题

6

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
201
威望
103
贡献
62
兑换币
67
注册时间
2017-11-16
在线时间
18 小时
9#
发表于 2018-5-23 17:37:48 | 只看该作者
感谢大佬分享
回复 支持 反对

使用道具 举报

0

主题

63

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2250
威望
1373
贡献
641
兑换币
482
注册时间
2016-9-25
在线时间
118 小时
10#
发表于 2018-5-24 19:16:09 | 只看该作者
匿名基础上改的呀,顶一个
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-5 16:34 , Processed in 0.071262 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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