热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

串口波形显示软件SerialChart的使用

单片机开发过程中串口是最常用的调试手段,可以将代码运行过程中的各种变量通过串口发送出来,以便观察程序的运行状态。特别是在调试传感器采集数据时ÿ

      单片机开发过程中串口是最常用的调试手段,可以将代码运行过程中的各种变量通过串口发送出来,以便观察程序的运行状态。

特别是在调试传感器采集数据时,可以通过串口来分析采样数据。但是单纯的看数据很难观察出来数据曲线的走势,如果可以将串口接收的数据通过曲线的方式绘制出来,对于调试代码来说就更方面了。

    今天推荐一款串口波形显示软件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 &#61; ~LED;for(ch1&#61;0;ch1<500;ch1&#43;&#43;)printf("%d\r\n",ch1);delay_ms( 200 );}
}

LED闪烁用来指示单片机运行状态&#xff0c;然后串口循环打印 数字 0---500&#xff0c;软件显示效果如下&#xff1a;

数据接收区显示串口接收到的数据&#xff0c;波形显示区&#xff0c;将接收到的数据绘制成曲线。这是只显示一个通道的曲线。

下面测试一下显示两个通道的曲线。修改代码为每次发送两组数据。

while( 1 ){LED &#61; ~LED;for( ch1 &#61; 0, ch2 &#61; 500; ch1<500, ch2>0; ch1&#43;&#43;, ch2-- )printf( "%d,%d\r\n", ch1, ch2 );delay_ms( 200 );}

发送两组数据&#xff0c;ch1为0--500递增&#xff0c;ch2为 500---0递减。串口发送时两组数据之间要用逗号隔开。

可以看到两个波形刚好相反&#xff0c;ch1波形为绿色&#xff0c;ch2波形为黄色。和配置文件中设置的颜色相同。

下面发送4组波形测试一下&#xff0c;修改测试代码如下&#xff1a;

while( 1 ){LED &#61; ~LED;for( ch1 &#61; 0, ch2 &#61; 100, ch3 &#61; 200, ch4 &#61; 300 ; ch1 <50, ch2 <150, ch3 <250, ch4 <350; ch1&#43;&#43;, ch2&#43;&#43;, ch3&#43;&#43;, ch4&#43;&#43; )printf( "%d,%d,%d,%d\r\n", ch1, ch2, ch3, ch4 );delay_ms( 200 );}

ch1为0--50&#xff0c;ch2为100--150&#xff0c;ch3为200--250&#xff0c;ch4为300--350。显示效果如下&#xff1a;

     显示波形的通道数根据自己使用情况可以自由添加&#xff0c;这里就不在测试了。串口发送数据时&#xff0c;每个通道的数据之间要用逗号分开&#xff0c;发送完一组数据时&#xff0c;要发送回车换行符。每接收一行数据&#xff0c;波形曲线就会画一个点。底下显示的波形不能放大或者缩小&#xff0c;只能简单的观看。

   如果不知道当前串口号是多少时&#xff0c;可以在设备管理器里面查看。设置方法如下

在计算机上单击鼠标右键&#xff0c;选择管理。

打开计算机管理界面后&#xff0c;在左侧选择设备管理器&#xff0c;然后点右边 端口(COM和LPT&#xff09;这个选项前面的小三角形&#xff0c;展开的选项中就可以看到当前串口号。

如果想要更改串口号时&#xff0c;可以在串口号上面单击右键&#xff0c;选择属性。

在打开的属性窗口上&#xff0c;选择上面的端口设置选项&#xff0c;然后在点高级按钮。

这时就会打开串口设置选项。

然后点左下角端口号右边的下拉框

在下拉框中选择要更改的串口号&#xff0c;假如要将COM5改为COM1&#xff0c;就选择COM1&#xff0c;然后确定按钮。

这时候属性窗口就会变成COM1

点确定按钮。

这时串口号就会由COM5变为COM1。然后将波形显示软件右边配置区域的COM5改为COM1&#xff0c;然后点绿色运行按钮&#xff0c;这时就是通过串口1来接收数据了。

 


推荐阅读
  • 本文介绍了使用kotlin实现动画效果的方法,包括上下移动、放大缩小、旋转等功能。通过代码示例演示了如何使用ObjectAnimator和AnimatorSet来实现动画效果,并提供了实现抖动效果的代码。同时还介绍了如何使用translationY和translationX来实现上下和左右移动的效果。最后还提供了一个anim_small.xml文件的代码示例,可以用来实现放大缩小的效果。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • 本文介绍了C++中省略号类型和参数个数不确定函数参数的使用方法,并提供了一个范例。通过宏定义的方式,可以方便地处理不定参数的情况。文章中给出了具体的代码实现,并对代码进行了解释和说明。这对于需要处理不定参数的情况的程序员来说,是一个很有用的参考资料。 ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • Linux环境变量函数getenv、putenv、setenv和unsetenv详解
    本文详细解释了Linux中的环境变量函数getenv、putenv、setenv和unsetenv的用法和功能。通过使用这些函数,可以获取、设置和删除环境变量的值。同时给出了相应的函数原型、参数说明和返回值。通过示例代码演示了如何使用getenv函数获取环境变量的值,并打印出来。 ... [详细]
  • 本文讨论了如何使用GStreamer来删除H264格式视频文件中的中间部分,而不需要进行重编码。作者提出了使用gst_element_seek(...)函数来实现这个目标的思路,并提到遇到了一个解决不了的BUG。文章还列举了8个解决方案,希望能够得到更好的思路。 ... [详细]
  • 本文详细介绍了GetModuleFileName函数的用法,该函数可以用于获取当前模块所在的路径,方便进行文件操作和读取配置信息。文章通过示例代码和详细的解释,帮助读者理解和使用该函数。同时,还提供了相关的API函数声明和说明。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • C语言常量与变量的深入理解及其影响
    本文深入讲解了C语言中常量与变量的概念及其深入实质,强调了对常量和变量的理解对于学习指针等后续内容的重要性。详细介绍了常量的分类和特点,以及变量的定义和分类。同时指出了常量和变量在程序中的作用及其对内存空间的影响,类似于const关键字的只读属性。此外,还提及了常量和变量在实际应用中可能出现的问题,如段错误和野指针。 ... [详细]
  • Gitlab接入公司内部单点登录的安装和配置教程
    本文介绍了如何将公司内部的Gitlab系统接入单点登录服务,并提供了安装和配置的详细教程。通过使用oauth2协议,将原有的各子系统的独立登录统一迁移至单点登录。文章包括Gitlab的安装环境、版本号、编辑配置文件的步骤,并解决了在迁移过程中可能遇到的问题。 ... [详细]
author-avatar
手机用户2502932807
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有