stm32实现的开源串口虚拟示波器,可采集16路AD数据(上位机部分)

上一节介绍了stm32实现的开源串口虚拟示波器(可采集16路AD数据)的下位机代码,这一节我们介绍一下这个上位机的部分,上位机我用了一个GITHUB上的一个开源QT项目,GITHUB地址:https://github.com/CieNTi/serial_port_plotter

Qt 项目的源文件和 .pro 文件可用。我为不想构建源代码的童鞋提供了一个独立的 .exe,可以到我的空间下载,生成的exe
stm32实现的开源串口虚拟示波器,可采集16路AD数据(上位机部分)_第1张图片
这是一个显示来自串行端口的实时数据的 Windows 应用程序。该应用程序是 32 位的,使用 Qt 和 QCustomPlot 库构建。
软件特点:
无轴限制:未知/新通道数据创建一个新图形并使用它(14 种循环颜色的调色板)
无数据点限制:保留所有接收到的数据,以便用户可以探索旧数据
无波特率限制:经测试高达 912​​600 bps
使用鼠标缩放和拖动(滚轮或单击,仅限于 X 轴)
在绘图中移动会在状态栏中显示图表的 X 和 Y 值
频道名称图例(双击修改)
频道选择(点击图例文字)
支持正负整数和浮点数
导出到 PNG
导出为 CSV
自动缩放到可见图形

如何使用应用程序
只需通过串行端口发送您的整数数据。应用程序需要某种格式,以便它可以区分值。您发送的每条消息都必须以“$”开头并以“;”结尾 (分号)和里面的整数需要用空格分隔。帮助按钮显示综合说明。
使用鼠标滚轮在控件上更改其值并在绘图区域上使用它进行缩放。
停止/暂停时,可以拖动绘图区域并启用文件保存。
要启用文件保存,请在开始绘图之前单击文档按钮。
双击图形控制面板中的通道以隐藏/显示特定通道。

通过串口发送数据接口协议
/示例:绘制两个值/

 printf ( " $ %d  %d ; " , data1, data2);

以我上节的下位机stm32代码为例,在MAIN文件中添加如下代码:

 int main(void)
 {	 
  u16 adcx;
	int i = 0;
	float temp;
	delay_init();	    	 //延时函数初始化	  
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
	uart_init(115200);	 	//串口初始化为115200
 	LED_Init();			     //LED端口初始化
	LCD_Init();			 	
 	Adc_Init();		  		//ADC初始化
  ADC_SoftwareStartConvCmd(ADC1, ENABLE);		//使能指定的ADC1的软件转换启动功能
  DMA_Cmd(DMA1_Channel1,ENABLE);
	while(1)
	{
//		adcx=Get_Adc_Average(ADC_Channel_1,10);
//		temp=(float)adcx*(3.3/4096)*1000;
//    printf("%f\t",temp);
//		delay_ms(250);

		printf("$%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d;",(int)(ADC_Value[0]),(int)(ADC_Value[1]),(int)(ADC_Value[2]),(int)(ADC_Value[3]),(int)(ADC_Value[4]),(int)(ADC_Value[5]),(int)(ADC_Value[6]),(int)(ADC_Value[7]),(int)(ADC_Value[8]),(int)(ADC_Value[9]),(int)(ADC_Value[10]),(int)(ADC_Value[11]),(int)(ADC_Value[12]),(int)(ADC_Value[13]),(int)(ADC_Value[14]),(int)(ADC_Value[15]));	
//		}
    
	}
 }

根据您要显示的数据量,您可以调整数据点的数量。例如,如果您每 10 毫秒(100 Hz)从 mbed 的串行端口发送数据并且绘图仪设置为显示 500 个点,它将包含 5 秒数据的信息。

该软件支持整数和十进制数( float/double )

Qt 项目的源文件和 .pro 文件可用。我为不想构建源代码的童鞋提供了一个独立的 .exe,可以到我的空间下载,生成的exe
打开我们的上位机软件,ok拉,16路ad数据都看到波形了,如果你觉得有用,麻烦给个赞拉,感谢老铁们!
stm32实现的开源串口虚拟示波器,可采集16路AD数据(上位机部分)_第2张图片

你可能感兴趣的:(信号处理算法,嵌入式,stm32,stm32,arm,嵌入式硬件)