0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

用200行Python代码实现串口调试助手之联合调试

454398 来源:alpha007 作者:alpha007 2022-11-15 15:23 次阅读

软件开发离不开调试,调试手段分两种:一是黑盒调试,即直接从输入 / 输出角度测试软件功能是否正常,这种方式仅能发现问题,但无法直接定位问题原因所在;二是白盒调试,即直接拿源代码在线 debug,python 虽是一种脚本语言,但借助一些 Python IDE 也可以实现单步调试,通过单步调试可以找到问题根本原因。

前面我们已经初步实现了 pzh-py-com,下面痞子衡会从黑盒和白盒的角度分别测试 pzh-py-com 功能:

一、黑盒调试:vspd + sscom

要测试 pzh-py-com 功能,首先得要有串口设备,当然我们可以使用真实的物理串口设备,比如使用如下这个经典的 CH34x 串口转 USB 模块,CH34x 芯片官方主页为 http://www.wch.cn/products/category/1.html。

安装好 CH34x 模块驱动 并将该模块 USB 接口端插上 PC 后便可在设备管理器的 Ports 里看到串口设备,一个物理模块就可以完成测试,只需要将模块的 RXD 和 TXD 线直接对接,这样便可实现回环测试。

很多时候手头并没有物理串口设备,那么这时候我们就需要借助虚拟串口软件,vspd 就是一款虚拟串口驱动,其官方主页为 https://www.eltima.com/products/vspdxp/,使用 vspd 可以在 PC 上虚拟出串口设备并实现虚拟连接,由于 vspd 不支持单设备回环连接,那么我们需要虚拟出两个串口设备并实现连接,痞子衡使用 vspd 虚拟出了 COM10 和 COM11,并将其进行了连接:

痞子衡选用的是 vspd 虚拟串口来测试

联合 sscom 测试串口数据收发,可知 pzh-py-com 基本串口数据收发功能是正常的,最基本的黑盒测试便通过了。

二、白盒调试:PyCharm

如果在黑盒测试过程中发现 pzh-py-com 功能有问题,从代码逻辑角度也不能立刻推断出问题,此时便需要使用 Python IDE 进行在线 debug,痞子衡选用的 PyCharm 软件,创建 pzh-py-com 工程后将其放于 pzh-py-com 主目录,工程会自动添加目录下所有源文件,选中 main.py 文件后选择 Debug(Shift+F9)便可以进行单步调试。

审核编辑 黄昊宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 串口调试
    +关注

    关注

    2

    文章

    268

    浏览量

    24712
收藏 人收藏

    评论

    相关推荐

    MQTT调试助手中文版(物联网开发必备)

    MQTT调试助手中文版(物联网开发必备)。 支持模拟设备链接各种MQTT云服务器、  阿里云、腾讯云、华为云、原子云、onenet等等。
    发表于 10-12 14:23 6次下载

    AT32F435CGU7做了个通讯板,串口调试助手看到,电路板有输出,但是乱码,为什么?

    AT32F435CGU7做了个通讯板,采用UART2与计算机进行通讯。结果,串口调试助手看到,电路板有输出,但是乱码。我
    发表于 09-27 08:19

    MCUXpresso IDE下在线联合调试双核MCU工程的三种方法

    大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家分享的是MCUXpresso IDE下在线联合调试i.MXRT1170双核工程的三种方法。
    的头像 发表于 08-08 15:18 549次阅读
    MCUXpresso IDE下在线<b class='flag-5'>联合调试</b>双核MCU工程的三种方法

    STC串口驱动调试程序

    STC的串口驱动调试程序。
    发表于 07-08 14:23 3次下载

    aurix development studio调试代码时,导致调试中断的原因?

    当我 aurix development studio 调试代码时,总是出现严重错误,导致调试中断,我不得不重启 studio,然后重新开始调试
    发表于 06-03 08:11

    使用串口调试工具Vofa+调试CW32

    数据接收。 1.接收数据 选择调试方式,并选择接口: 配置串口参数: 注意这里串口参数的配置要和程序里的代码设置一致,否则可能接
    的头像 发表于 05-31 17:22 1715次阅读
    使用<b class='flag-5'>串口</b><b class='flag-5'>调试</b>工具Vofa+<b class='flag-5'>调试</b>CW32

    超好用的纸飞机串口调试助手

    和普通串口助手不一样,这个可以对文本增加语法高亮,单词、数字、符号之间的颜色是不相同的!!在茫茫数据流中找数据会很方便好不好,简直眼瞎党的福音,用了一次回不来的那种!!
    的头像 发表于 04-28 09:58 1795次阅读
    超好用的纸飞机<b class='flag-5'>串口</b><b class='flag-5'>调试</b><b class='flag-5'>助手</b>

    Python怎么读取STM32串口数据?

    Python写的一个串口读取代码 :import serial import timeser=serial.Serial(\'com5\',9600,timeout=2)s
    发表于 04-24 07:30

    Pyserial库来进行与stm32的串口通信,write方法给32发数据时会出现数据的错误和缺失怎么解决?

    我使用的是Pyserial库来进行与stm32的串口通信,python可以很好地接收32发来的数据,但是我write方法给32发数据时会出现数据的错误和缺失,同样的32程序我
    发表于 03-12 07:32

    如何使用linux下gdb来调试python程序

    如何使用linux下gdb来调试python程序  在Linux下,可以使用GDB(GNU调试器)来调试Python程序。GDB是一个强大的
    的头像 发表于 01-31 10:41 2570次阅读

    linuxgdb调试遇到函数调用怎么办?

    linuxgdb调试遇到函数调用怎么办? 在Linux上使用GDB调试时,遇到函数调用是一个常见的情况。函数调用可能涉及到多个函数、多个文件,这就需要我们仔细审查代码,理解函数之间的
    的头像 发表于 01-31 10:33 710次阅读

    ZDP1440串口屏应用开发如何使用虚拟串口调试

    ZDP1440串口屏应用开发如何使用虚拟串口调试呢?本文将详细方法分享给大家。
    的头像 发表于 01-25 11:32 1669次阅读
    ZDP1440<b class='flag-5'>串口</b>屏应用开发如何使用虚拟<b class='flag-5'>串口</b><b class='flag-5'>调试</b>

    电机控制调试助手怎么

    电机控制调试助手是一种帮助用户进行电机控制调试的辅助工具。它可以提供实时监测、参数设置、故障诊断和历史数据分析等功能,为用户提供便捷、高效的电机调试和优化方法。 首先,电机控制
    的头像 发表于 12-28 13:57 910次阅读

    C#网络串口调试助手源码

    非常牛B网络串口调试助手C#源码,支持添加多条协议
    发表于 12-27 09:45 4次下载

    串口与网络调试助手:支持广播数据、支持选择网卡

    电子发烧友网站提供《串口与网络调试助手:支持广播数据、支持选择网卡.zip》资料免费下载
    发表于 12-27 09:40 2次下载