智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 1650|回复: 8
打印 上一主题 下一主题

20通道虚拟示波器(任意通道支持整型和浮点类型)

[复制链接]

6

主题

49

帖子

0

精华

金牌会员

Rank: 6Rank: 6

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

前面一个帖子已经把最新版本资源分享了。之所以重开一个帖子,一是为了让更多的小伙伴看到,二是对这个软件的更新部分做一个特别说明,避免各位小伙伴因为没有注意到软件内的更新说明,传输数据时出现异常,增加调试难度。三,我做车时没有一个免费好用的上位机,所以走了许多弯路。读研了有时间了,所以下定决心自己写上位机。该软件是我花了两个月写的,并不是复制粘贴来的,希望使用的小伙伴多点支持少点言语伤害。也祝各位小伙伴能在智能车的道路上越走越远。

20通道数字示波器使用说明
                                                                                                                       Author:垆边月晓 2018/05/22

通讯协议:
        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,第五位至倒数第二位为数据,最后一位为和校验位。
和校验:从第一位到倒数第二位相加求和得到的一个字节作为校验。
操作说明:
        拖动图像:按住鼠标左键拖动
        缩放图像:按住鼠标右键拖动或者滑动滑轮
        自动跟踪波形:双击鼠标左键
修改说明:
          v0.2.0版:   
                            1.   修改数据传输方式,改为小端模式传输和接收(windows系统是小端模式)。
                                 即由原来先传输BYTE[1]改为先传输BYTE[0]。
                            2.   增加数据类型选择(4字节的float和2字节的int16),任意通道都支持浮点数据。
                                  若是选择float 型,则BYTE[0],BYTE[1],BYTE[2],BYTE[3]依次传输(见参考例程第4通道)。                          
                            3.   增加波形系数(浮点型);  
参考例程:
#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;
                float  _f_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++]=BYTE0(_temp);//通道1
        data_to_send[_cnt++]=BYTE1(_temp);//通道1
        _temp = (int)(0);//通道2
        data_to_send[_cnt++]=BYTE0(_temp);//通道2
        data_to_send[_cnt++]=BYTE1(_temp);//通道2
        _temp = (int)(0);//通道3
        data_to_send[_cnt++]=BYTE0(_temp);//通道3
        data_to_send[_cnt++]=BYTE1(_temp);//通道3

               _f_temp=0;//传输浮点数据(任意通道都支持浮点数据)
               data_to_send[_cnt++]=BYTE0(_f_temp);//通道4        
               data_to_send[_cnt++]=BYTE1(_f_temp);//通道4
               data_to_send[_cnt++]=BYTE2(_f_temp);//通道4        
               data_to_send[_cnt++]=BYTE3(_f_temp);//通道4

        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);
}

历史版本

本帖子中包含更多资源

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

x
回复

使用道具 举报

0

主题

70

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2538
威望
1134
贡献
734
兑换币
769
注册时间
2017-9-5
在线时间
335 小时
毕业学校
浙江工业大学
2#
发表于 2018-6-25 18:53:27 | 只看该作者
感谢楼主
回复 支持 反对

使用道具 举报

1

主题

491

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3069
威望
1606
贡献
873
兑换币
1133
注册时间
2016-9-16
在线时间
295 小时
毕业学校
高中
3#
发表于 2018-6-25 22:19:13 | 只看该作者
这个软件不错的,真的
跟匿名的有点像,协议也像,不过是真的厉害,复制粘贴是不可能的,这种上位机也没有开源的,楼主真心不错,学习,学习
回复 支持 反对

使用道具 举报

0

主题

185

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4944
威望
2874
贡献
1846
兑换币
1958
注册时间
2017-12-6
在线时间
112 小时
4#
发表于 2018-6-26 15:54:15 | 只看该作者
:):):):):):):)
回复 支持 反对

使用道具 举报

0

主题

10

帖子

0

精华

注册会员

Rank: 2

积分
145
QQ
威望
77
贡献
44
兑换币
50
注册时间
2018-5-23
在线时间
12 小时
毕业学校
清华
5#
发表于 2018-6-28 21:09:35 | 只看该作者
为什么显示有病毒,总是被隔离
回复 支持 反对

使用道具 举报

6

主题

49

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2315
威望
1187
贡献
724
兑换币
706
注册时间
2012-9-13
在线时间
202 小时
毕业学校
曲阜师范大学
6#
 楼主| 发表于 2018-6-29 11:28:08 | 只看该作者
红心向党 发表于 2018-6-28 21:09
为什么显示有病毒,总是被隔离

是你的杀毒软件的问题吧
回复 支持 反对

使用道具 举报

0

主题

10

帖子

0

精华

注册会员

Rank: 2

积分
145
QQ
威望
77
贡献
44
兑换币
50
注册时间
2018-5-23
在线时间
12 小时
毕业学校
清华
7#
发表于 2018-6-30 08:49:06 | 只看该作者
请问cnt是什么数组,如果在电机控制里面,是编码器的脉冲吗?
回复 支持 反对

使用道具 举报

6

主题

49

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2315
威望
1187
贡献
724
兑换币
706
注册时间
2012-9-13
在线时间
202 小时
毕业学校
曲阜师范大学
8#
 楼主| 发表于 2018-6-30 12:11:18 | 只看该作者
红心向党 发表于 2018-6-30 08:49
请问cnt是什么数组,如果在电机控制里面,是编码器的脉冲吗?

data_to_send这个数组是一个临时的,是存储你发送到串口数据的。你想看哪个变量值直接赋值给_temp

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

18

主题

171

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3538

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

威望
2248
贡献
24
兑换币
1147
注册时间
2013-9-12
在线时间
633 小时
9#
发表于 2018-7-2 22:53:18 | 只看该作者
老哥  能给点源码参考下吗?想做个usb传输的上位机
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-7 17:47 , Processed in 0.113323 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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