用单片机调试时,有没有想过要一款软件把串口数据的波形给打印出来,调试传感器,PID参数等等等等,这款软件绝对值得拥有,Serial Chart就是这样的软件,可以从串口读取数据,然后,画出波形图,很实用。但是配置并不是图形界面式的方法,而是写配置文件,按照格式模板写即可:
左上框显示接收数据,右上框显示自己写入的配置文件,下面显示的是接收到的波形图。这里数据波形图只接收了一组数据,画出来一条数据波形图。实际可以接收一组数据,显示一组波形图。
这里使用STM32F407测试,发送数据,这里接收,简短程序如下:
adcx = Get_Adc(ADC_Channel_5); //AD采集数据
temp=(float)adcx*(3.3/4096); //转换为实际电压值
printf("%.2f\r\n",temp); //串口发送到PC
我用的配置文件如下:
[_setup_]
port=COM3
baudrate=115200
width=1350
height=200
background_color = transparent
grid_h_origin = 0
grid_h_step = 50
grid_h_color = lime
grid_h_origin_color = lime
grid_v_origin = 0
grid_v_step = 10
grid_v_color = lime
grid_v_origin_color = lime
[_default_]
min=0
max=6
[Field1]
color=red
配置文件解释如下:
[_setup_]
port=COM3
baudrate=9600
width=500
height=200
background_color = white
?
grid_h_origin = 100
grid_h_step = 10
grid_h_color = gray
grid_h_origin_color = black
?
grid_v_origin = 10
grid_v_step = 10
grid_v_color = gray
grid_v_origin_color = red
?
[_default_]
min=-1024
max=1024
?
[Field1]
color=green
?
[Field2]
color=blue
?
[Field3]
color=red
grid_h_origin = 100 ? ?水平坐标线位置,也就是横轴画在哪里,注意是从顶上开始数像素
grid_h_step = 10 ? ? ? ? 水平画坐标线的间隔
grid_h_color = gray ? ? 水平坐标线的颜色,这里是灰色
grid_h_origin_color = black ? 水平横轴的颜色,这里是黑色
?
grid_v_origin = 10 ? ? ? 垂直坐标线位置,也就是竖轴位置,从左数,这个软件有个毛病,如果横纵坐标原始位置设成绘图区域的边界的话,就会不显示,小bug呵呵
grid_v_step = 10 ? ? ? 垂直分隔含义与上面类似
grid_v_color = gray
grid_v_origin_color = red ? 竖轴设为红色的
?
下面就和数据有关了:
?
min=-1024
max=1024 ?这两个参数代表了整个绘图区域从最底下到最上边代表的数据范围,我写的是从负1024到正1024这么个数据范围,我的串口数据不会超过这个范围
?
?
[Field1]
color=green ? ?数据区1的曲线颜色定义,下同,你有多少组数据,也就是要画多少条曲线,就要定义多少个field
?
[Field2]
color=blue
?
[Field3]
color=red ? ? ?
颜色定义参考这个地址:http://www.w3.org/TR/SVG/types.html#ColorKeywords
?
数据发送格式一定要ascii 码的数据,数据加逗号加数据加逗号加数据加回车换行符
参考链接:
http://archive.ednchina.com/bbs.ednchina.com/BLOG_ARTICLE_3015472.HTM
http://blog.sina.com.cn/s/blog_a55f2f4e01014egl.html
http://www.geek-workshop.com/thread-554-1-1.html