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

    浏览量

    24732
收藏 人收藏

    评论

    相关推荐

    使用Python进行串口通信的案例

    python复制代码 import serialimport time # 配置串口参数serial_port = '/dev/ttyUSB0' # 在Windows上可能是 'COM3' 或其他类
    的头像 发表于 11-22 09:11 280次阅读

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

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

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

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

    【龙芯2K0300蜂鸟板试用】UART通信测试1、调试串口

    1、调试串口 Type-C线直连开发板,打开串口助手,等待上电 串口
    发表于 09-20 00:27

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

    大家好,我是痞子衡,是正经搞威廉希尔官方网站 的痞子。今天痞子衡给大家分享的是MCUXpresso IDE下在线联合调试i.MXRT1170双核工程的三种方法。
    的头像 发表于 08-08 15:18 610次阅读
    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 1850次阅读
    使用<b class='flag-5'>串口</b><b class='flag-5'>调试</b>工具Vofa+<b class='flag-5'>调试</b>CW32

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

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

    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 2662次阅读

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

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

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

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