分享一个串口波形显示工具

2019-07-20 12:59发布

本帖最后由 jinstm32 于 2016-12-26 09:04 编辑

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

可显示三条曲线 图中两条正弦一条固定值
3.jpg
可显示三条曲线 图中两条正弦一条固定值 。图形可缩放拖动
使用方法:
1.jpg
1:
配置串口后点保存退出,这时候会在这个exe存放目录下创建个 QQ截图20161224093626.jpg 文件。这个就是保存的参数,不要删了。删了的话重新配置
2:点击打开按钮 就等着接收数据了,接收一帧数据更新一次波形。也就是串口发一次刷新一次,不发不刷新。
3:下位机发送的数据格式为:
[mw_shl_code=c,true]u16  Curve_1,Curve_2,Curve_3; //定义变量 unsigned int 型

u8   CurSenBuff[8];    //发送缓存

int main()
{
  u8 S_Flag;
  int tempdata;
  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_CRC,ENABLE); //STemWin 相关

  HW_Init(); //硬件初始化

  Curve_2 = 500;  //设置固定值

  while(NRF24L01_Check());
  GUI_DispStringAt("NRF24L01 OK",80,16);
  NRF24L01_TX_Mode();
  while(1)
  {
   tempdata++;if(tempdata>360) tempdata = -360;
   Curve_1=(u16)(300*cosf(tempdata*0.2)+500);  //生成余弦波

   Curve_3=(u16)(300*cosf(tempdata*0.2)+800);  //生成余弦波
   CurSenBuff[0] = Curve_1;    //波形1的低八位数据

   CurSenBuff[1] = (Curve_1>>8); //波形1的高八位数据
   CurSenBuff[2] = Curve_2;    //波形2

   CurSenBuff[3] = (Curve_2>>8);
   CurSenBuff[4] = Curve_3;    //波形3

   CurSenBuff[5] = (Curve_3>>8);
   S_Flag = NRF24L01_TxPacket(CurSenBuff);
   delay_ms(10);
}
}[/mw_shl_code]

发送Buff的前两位存储波形1的数据,依次类推 就像例子里的一样。 我用的nrf24l01,大家可以直接发串口。
发送的Buff最好是八位的,后两位虽然没用。但是也检测了,实在不发也行。Y轴最大值就是65535,X轴发一次加1。

这是粗略的调了下电机PID的响应曲线,有点不忍直视了。
s2.jpg

最后:有问题的回帖。提建议的回帖。提BUG的回帖。发图的回帖。这个小软件我会完善的,后续加入曲线样式。保存数据什么的。
KoPu_WFD_Alpha.zip (16.07 MB, 下载次数: 15843) 2016-12-24 10:16 上传 点击文件名下载附件
Qt编写串口通信程序.pdf (1.2 MB, 下载次数: 1292) 2016-12-26 09:02 上传 点击文件名下载附件
C GUI Qt 4编程 源代码.zip (3.06 MB, 下载次数: 2924) 2016-12-26 09:04 上传 点击文件名下载附件
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。