硬汉嵌入式论坛

 找回密码
 立即注册
查看: 11189|回复: 9
收起左侧

[客户分享] 分享一个串口波形显示工具

[复制链接]

13

主题

38

回帖

77

积分

初级会员

积分
77
发表于 2016-12-24 09:54:52 | 显示全部楼层 |阅读模式
前言:学了一段时间Qt,写了个串口波形显示软件。是V0.1版本。还有很多功能要加上。但是基础波形显示功能已经没问题了。
分享原因:1:感恩。回馈论坛,回馈热于助人的大神。
                        2:希望赏脸使用这个小软件的大神们给点意见、发现BUG、回复本帖即可,附图片更佳。
测试效果

2.jpg
可显示三条曲线 图中两条正弦一条固定值
2.jpg
可显示三条曲线 图中两条正弦一条固定值
3.jpg
可显示三条曲线 图中两条正弦一条固定值 。图形可缩放拖动
使用方法:

1: 1.jpg
配置串口后点保存退出,这时候会在这个exe存放目录下创建个 QQ截图20161224093626.jpg 文件。这个就是保存的参数,不要删了。删了的话重新配置
2:点击打开按钮 就等着接收数据了,接收一帧数据更新一次波形。也就是串口发一次刷新一次,不发不刷新。
3:下位机发送的数据格式为:
  1. u16  Curve_1,Curve_2,Curve_3; //定义变量 unsigned int 型
  2. u8   CurSenBuff[8];    //发送缓存
  3. int main()
  4. {
  5.   u8 S_Flag;
  6.   int tempdata;
  7.   RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_CRC,ENABLE); //STemWin 相关
  8.   HW_Init(); //硬件初始化
  9.   Curve_2 = 500;  //设置固定值
  10.   while(NRF24L01_Check());
  11.   GUI_DispStringAt("NRF24L01 OK",80,16);
  12.   NRF24L01_TX_Mode();
  13.   while(1)
  14.   {
  15.    tempdata++;if(tempdata>360) tempdata = -360;
  16.    Curve_1=(u16)(300*cosf(tempdata*0.2)+500);  //生成余弦波
  17.    Curve_3=(u16)(300*cosf(tempdata*0.2)+800);  //生成余弦波[size=5][size=4][size=4][/size][/size][/size]
  18.    CurSenBuff[0] = Curve_1;    //波形1的低八位数据
  19.    CurSenBuff[1] = (Curve_1>>8); //波形1的高八位数据
  20.    CurSenBuff[2] = Curve_2;    //波形2
  21.    CurSenBuff[3] = (Curve_2>>8);
  22.    CurSenBuff[4] = Curve_3;    //波形3
  23.    CurSenBuff[5] = (Curve_3>>8);
  24.    S_Flag = NRF24L01_TxPacket(CurSenBuff);
  25.    delay_ms(10);
  26. }
  27. }
复制代码
发送Buff的前两位存储波形1的数据,依次类推 就像例子里的一样。 我用的nrf24l01,大家可以直接发串口。
发送的Buff最好是八位的,后两位虽然没用。但是也检测了,实在不发也行。Y轴最大值就是65535,X轴发一次加1。

最后:有问题的回帖。提建议的回帖。提BUG的回帖。发图的回帖。这个小软件我会完善的,后续加入曲线样式。保存数据什么的。

KoPu_WFD_Alpha.zip (16.07 MB, 下载次数: 2758)

Qt编写串口通信程序.pdf (1.2 MB, 下载次数: 425)

C++ GUI Qt 4编程 源代码.zip (3.06 MB, 下载次数: 1189)

C++ GUI Qt 4编程(第二版).zip (21.04 MB, 下载次数: 840)
回复

使用道具 举报

13

主题

38

回帖

77

积分

初级会员

积分
77
 楼主| 发表于 2016-12-24 09:55:41 | 显示全部楼层
这两附件是一样的,不知怎么回事出来两个
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106746
QQ
发表于 2016-12-24 09:57:39 | 显示全部楼层
非常感谢楼主分享,置酷[s:151]

ps:附件出现两个是因为上传完成后,往帖子里面添加了两次。
回复

使用道具 举报

13

主题

38

回帖

77

积分

初级会员

积分
77
 楼主| 发表于 2016-12-26 09:12:35 | 显示全部楼层

回 eric2013 的帖子

eric2013:非常感谢楼主分享,置酷[s:151]

ps:附件出现两个是因为上传完成后,往帖子里面添加了两次。 (2016-12-24 09:57) 
好!感谢置酷
回复

使用道具 举报

17

主题

132

回帖

183

积分

初级会员

积分
183
发表于 2016-12-26 12:18:26 | 显示全部楼层
QT生产的可执行文件体积太大了。
回复

使用道具 举报

13

主题

38

回帖

77

积分

初级会员

积分
77
 楼主| 发表于 2016-12-28 08:03:42 | 显示全部楼层

回 rgzdb 的帖子

rgzdb:QT生产的可执行文件体积太大了。 (2016-12-26 12:18) 
产生的不大,依赖项比较多
回复

使用道具 举报

4

主题

20

回帖

4

积分

新手上路

积分
4
发表于 2017-2-5 15:40:30 | 显示全部楼层
1:发送数据的格式没有怎么看明白,能说详细点吗?比如帧格式,位数,每一bit的含义。。。。(像modbus那样一看就清楚);
2:是否支持Y轴缩放?
3:MS以前看见有人用过serial chart 或者visual scope等软件,现在也找不到了。。。
4:祝越做越好!
回复

使用道具 举报

15

主题

38

回帖

83

积分

初级会员

积分
83
发表于 2017-8-8 09:17:09 | 显示全部楼层
1.在数据显示时候,按照位数来显示会更加好,比如2数据,显示的波形是00000010这样。
2.在发完一次数据后的波形显示的绘图上可能不对,绘图时候的起始坐标的Y轴好像错了,应该使用终点坐标的Y轴
3.清除波形功能貌似不可以使用
4.感谢楼主,要是能完善以上功能,这可以方便一部分人发数据时候,用示波器看那么麻烦
回复

使用道具 举报

0

主题

2

回帖

2

积分

新手上路

积分
2
发表于 2017-9-19 11:16:21 | 显示全部楼层
[s:151]  [s:151]  楼主好样的
回复

使用道具 举报

334

主题

2032

回帖

3039

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3039
发表于 2020-6-29 09:41:03 | 显示全部楼层
这位大侠还在吗? 想请教一下子啊。
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-3 16:49 , Processed in 0.247936 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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