单片机开发过程中串口是最常用的调试手段,可以将代码运行过程中的各种变量通过串口发送出来,以便观察程序的运行状态。
特别是在调试传感器采集数据时,可以通过串口来分析采样数据。但是单纯的看数据很难观察出来数据曲线的走势,如果可以将串口接收的数据通过曲线的方式绘制出来,对于调试代码来说就更方面了。
今天推荐一款串口波形显示软件SerialChart,官方下载地址为:http://www.starlino.com/serialchart
打开网页后,点击红圈位置,直接下载就行。
打开文件夹,直接双击SerialChart.exe文件运行。
软件界面如下:
这个软件需要在右边配置区域设置,最简单的设置只修改串口号和波特率就行了。但是为了观察波形方便,对数据范围和波形通道颜色都设置一下。
修改后的参数如下图所示:
下来编写测试代码,看一下显示效果。
void main( void )
{
__asm( "sim" ); //系统初始化
SysClkInit();
delay_init( 16 );
LED_GPIO_Init();
Uart1_IO_Init();
Uart1_Init( 9600 );
__asm( "rim" );
while( 1 )
{
LED = ~LED;
for(ch1=0;ch1<500;ch1++)
printf("%d\r\n",ch1);
delay_ms( 200 );
}
}
LED闪烁用来指示单片机运行状态,然后串口循环打印 数字 0---500,软件显示效果如下:
数据接收区显示串口接收到的数据,波形显示区,将接收到的数据绘制成曲线。这是只显示一个通道的曲线。
下面测试一下显示两个通道的曲线。修改代码为每次发送两组数据。
while( 1 )
{
LED = ~LED;
for( ch1 = 0, ch2 = 500; ch1<500, ch2>0; ch1++, ch2-- )
printf( "%d,%d\r\n", ch1, ch2 );
delay_ms( 200 );
}
发送两组数据,ch1为0--500递增,ch2为 500---0递减。串口发送时两组数据之间要用逗号隔开。
可以看到两个波形刚好相反,ch1波形为绿色,ch2波形为黄色。和配置文件中设置的颜色相同。
下面发送4组波形测试一下,修改测试代码如下:
while( 1 )
{
LED = ~LED;
for( ch1 = 0, ch2 = 100, ch3 = 200, ch4 = 300 ; ch1 < 50, ch2 < 150, ch3 < 250, ch4 < 350; ch1++, ch2++, ch3++, ch4++ )
printf( "%d,%d,%d,%d\r\n", ch1, ch2, ch3, ch4 );
delay_ms( 200 );
}
ch1为0--50,ch2为100--150,ch3为200--250,ch4为300--350。显示效果如下:
显示波形的通道数根据自己使用情况可以自由添加,这里就不在测试了。串口发送数据时,每个通道的数据之间要用逗号分开,发送完一组数据时,要发送回车换行符。每接收一行数据,波形曲线就会画一个点。底下显示的波形不能放大或者缩小,只能简单的观看。
如果不知道当前串口号是多少时,可以在设备管理器里面查看。设置方法如下
在计算机上单击鼠标右键,选择管理。
打开计算机管理界面后,在左侧选择设备管理器,然后点右边 端口(COM和LPT)这个选项前面的小三角形,展开的选项中就可以看到当前串口号。
如果想要更改串口号时,可以在串口号上面单击右键,选择属性。
在打开的属性窗口上,选择上面的端口设置选项,然后在点高级按钮。
这时就会打开串口设置选项。
然后点左下角端口号右边的下拉框
在下拉框中选择要更改的串口号,假如要将COM5改为COM1,就选择COM1,然后确定按钮。
这时候属性窗口就会变成COM1
点确定按钮。
这时串口号就会由COM5变为COM1。然后将波形显示软件右边配置区域的COM5改为COM1,然后点绿色运行按钮,这时就是通过串口1来接收数据了。