SerialLibrary库串口通信

Posted yinjia

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SerialLibrary库串口通信相关的知识,希望对你有一定的参考价值。

常用关键字介绍

  •  Add Port

参数:【port_locator | open=True | make_current=False | **kwargs】

说明:添加端口

       Port_locator:端口号

    Open:默认为True表示激活状态,False表示禁用状态

    Make_current:默认为False,如果为True真值,则打开的端口设置为通用的端口使用

举例

 技术图片

 结果

Starting test: Demo.Serial.Demo.Add Port

20200214 15:53:08.110 :  INFO : ${ret} = Serial<id=0x31bc860, open=False>(port=u‘COM1‘, baudrate=38400, bytesize=8, parity=‘N‘, stopbits=1, timeout=1.0, xonxoff=False, rtscts=False, dsrdtr=False)

Ending test:   Demo.Serial.Demo.Add Port

  • Switch Port

参数:【port_locator】

说明:切换端口

    切换当前指定的端口进行操作

举例

 技术图片

备注:当环境存在多个串口连接DUT设备,如特殊情况需要切换到其它端口时,进行切换端口。

  • List Com Port Names

参数:无

说明:返回当前环境端口名

举例

 技术图片

结果

技术图片

  • List Com Port

参数:无

说明:返回当前端口条目信息

 举例

 技术图片

结果

 技术图片

  • Set Encoding

参数:【encoding=None】

说明:设置编码

    默认是以16进制形式输出,如需要从串口输出字符展示,则设置为utf-8

举例

 技术图片

结果

 技术图片

  • Write Data

参数:【data | encoding=None | port_locator=None】

说明:在指定串口发送指令数据

 举例:从串口获取接口的MAC保存在变量。

技术图片

结果:

技术图片

备注:先发送指令,然后再使用Read All Data读取所有的数据保存在缓存变量里,最后通过字符处理方式截取MAC地址。

  • Write File Data

参数:【file_or_path | offset =0| length=-1 | port_locator】

说明:读取指定文件内容向串口下发数据

    Length默认为-1表示则读取当前输入文件位置之后的所有内容,否则,将从输入文件中读取指定字节数。

举例

比如文本文件内容为ifconfig eth0,读取文件内容默认从0位置开始读取

技术图片

结果:

技术图片

  •  Com Port Should Exist Regexp

参数:【regexp】

说明:查找匹配的COM端口

    如果在系统上找不到与给定模式匹配的com端口,则失败。如果存在的话,则返回与模式匹配的COM端口列表。

举例

技术图片

结果:

技术图片

  • Port Should Be Open & Closed

参数:无

说明:检查串口开启/关闭状态

    比如想要知道COM2串口当前是打开还是关闭状态,当COM2是打开状态,则返回通过,表示COM2是打开状态;否则当前COM2是关闭状态

举例

 技术图片

结果

 技术图片

  • Read All And Log

参数:【loglevel=‘debug‘, encoding=None, port_locator=None】

说明:读取所有可用数据并将其写入日志

    Loglevel可以是“info”、“debug”或“warn”(不区分大小写)。

任何其他级别都会导致错误。如果未指定“encoding”,则使用默认编码。

如果日志设置为debug级别,则正常数据不会打印出来。Warn级别会输出错误或警告信息。

举例

技术图片

 结果:

技术图片

  • Read Data Should Be

参数:[ data | encoding=None | port_locator=None ]

说明:如果从端口读取的所有字节都不等于指定的数据,则失败

     Data :读取的数据以16进制输出

     【备注:此关键字不常用,一般特殊情况校验数据字节码用到】

举例

技术图片

结果:

技术图片

  •  Read Until

参数:[ terminator= | size=None | encoding=None | port_locator=None ]

说明:读取数据,直到找到终止符、超出大小或超时。

       terminator:终止符。循环读取数据时,直到找到预期的字符就停止读取,把读到的数据存入缓存

       size:缓存大小。按指定的缓存大小范围内读取预期的字符。

       encodig:字符编码

       port_locator:端口号

举例

技术图片

结果:

技术图片

  • Delete Port

参数:[ port_locator=None ]

说明:删除指定的端口号

如果端口已打开,则它将关闭。默认情况下,将删除当前端口,并选择最近添加的端口作为新的当前端口。删除库实例中的最后一个端口会将当前端口设置为“无”。如果找不到指定的端口,则失败;如果将当前端口设置为“无”,则尝试删除该端口

举例

技术图片

 结果:

技术图片

  • Delete All Ports

参数:[]

说明:删除库实例中维护的所有端口

打开的端口在删除前关闭。

举例

 技术图片

结果

 技术图片

  • Read All Data

参数:[ encoding=None | port_locator=None ]

说明:从端口的传入缓冲区读取所有可用数据。

举例

技术图片

 结果:

技术图片

  • Get Port Parameter

参数:[ param_name | port_locator=None ]

说明

默认情况下,检查当前端口。可用参数是可以在库导入或添加端口关键字时设置的参数:波特率、字节大小、奇偶校验、停止位、超时、xonxoff、rtscts、写入超时、dsrdtr和内部字节超时。

在错误的参数名或端口定位器上失败。

 举例

 技术图片

结果

 技术图片

 

以上是关于SerialLibrary库串口通信的主要内容,如果未能解决你的问题,请参考以下文章

串口通信属性及事件解析

java可用与串口通信的一些库

HAL库 STM32CubeMX--USART串口通信--补充

stm32串口通信

通过串口进行通信 :

STM32CubeMX基于HAL库实现简单串口通信