python串口通信 - serial

安装
pip install pyserial
方法
# 获取当前系统内的所有检测到的串口信息
serial.tools.list_ports.comports()

"""
- 根据设置的波特率发送数量,bytes_data数量不会影响效率
- 传入字节类型数据, 成功时返回传入数据长度
    - 当被cancel_write函数中断后(结果见测试代码1输出)
        - Windows、Linux返回0
        - Mac返回已写入数据长度
- 超时抛出异常(serial.serialutil.SerialTimeoutException: Write timeout) 
- 异常出现情况
    - 设置超时时间(write_timeout)后,单次写入超过超时时间
    - (???, 见测试代码2)同时进行多次write, 当耗时长的write结束时将抛出该异常
"""
serial.write(bytes_data)

"""
- 从串行端口读取大小字节。如果设置了超时,则可以按要求返回较少的字符。
如果没有超时,它将阻塞直到读取请求的字节数。
    - 当被cancel_read函数中断后
        - Windows返回0
        - Linux、Mac返回已读取的数据
- 设置超时时间(timeout), 不会抛出异常
- 超时后继续read不丢包
"""
serial.read(size)  

# 中断write
cancel_write() 

# 中断read
cancel_read()

串口每秒传输的字节数 = 波特率 / 10 , 10为 8 bit + 2bit的帧头帧尾

  • 测试代码如下
import serial, threading
import serial.tools.list_ports
import time
# 读取当前系统内的串口信息
for i in serial.tools.list_ports.comports():
    print(i)


def write(ser, data):
    # 超时后跑出异常(serial.serialutil.SerialTimeoutException: Write timeout)
    st = time.time()
    write_length = ser.write(data)
    print("write length: ", write_length)
    write_time = time.time() - st
    print("write time: ", write_time)</
  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Python中可以使用pyserial库来实现串口通信。使用这个库之前需要先安装它,可以使用pip命令进行安装:pip install pyserial。 在代码中导入pyserial库之后,可以使用Serial类来打开和配置串口。例如: ```python import serial ser = serial.Serial("COM3", 9600) ``` 上面的代码打开了一个名为COM3的串口,并设置了波特率为9600。 使用串口之后,可以使用write()和read()方法来进行数据的发送和接收。例如: ```python ser.write(b'hello') data = ser.read() ``` 上面的代码向串口发送了一个字符串hello,并从串口读取了一个字节的数据。 需要注意的是,在使用完串口之后,需要调用close()方法来关闭串口。 这是最基本的串口操作,具体实现还需要根据实际情况来进行调整。 ### 回答2: Python serial 是一个 Python 串口通信库,它可以让 Python 程序通过串口与其他设备进行数据通信。在实际应用中,串口通信经常被用于与嵌入式设备、传感器等进行通信。Python serial 具有很高的灵活性和可扩展性,可以支持多种不同的串口设备和协议。 在 Python 程序中使用 Python serial 进行串口通信,首先需要安装 Python serial 库,可以通过 pip 命令进行安装:pip install pyserial。安装成功后,就可以在 Python 程序中导入 Python serial 库,并使用其中提供的函数和类进行串口通信了。 Python serial 提供了两种基本的串口通信方式:同步通信和异步通信。同步通信指的是每次发送数据都需要等待接收方响应后才能发送下一条数据,通信效率较低,但易于实现。异步通信则是采用数据缓存和事件驱动的方式,可以在数据发送和接收的同时进行其他操作,通信效率较高,但实现较为复杂。 在使用 Python serial 进行串口通信时,还需要考虑串口的参数设置,比如波特率、数据位、停止位和校验位等。不同的串口设备和通信协议需要不同的参数设置,需要根据具体情况进行调整。 总的来说,Python serial 是一个功能强大的串口通信库,可以在 Python 程序中方便地实现串口通信功能。虽然需要一定的技术和实践经验,但只要掌握了基本的使用方法和串口参数设置技巧,就能够实现高效稳定的串口通信功能。 ### 回答3: Python语言具有强大的串口通信能力,同样可以通过串口与其他硬件设备进行通信。Python serial库提供了丰富的API函数,可用于接收和发送数据。下面是对Python serial库的基本介绍。 一、安装Python serial库 1、Windows用户安装 可以通过pip命令安装Python serial库。 打开命令行窗口,输入以下命令: pip install pyserial 2、Linux用户安装 Linux下,安装Python serial库需要先安装串口支持库libserial。 打开Shell窗口,输入以下命令安装: sudo apt-get install python-serial 二、Python serial库基础函数 在Python中使用串口通信,必须要知道以下函数: 1、serial.Serial(port=0, baudrate=9600, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=0, rtscts=0): 创建序列串口实例。 2、ser.open(): 打开序列串口实例。 3、ser.isOpen(): 检查串口是否打开。 4、ser.close(): 关闭串口。 5、ser.write(data): 发送数据。 6、ser.readline(): 接收数据,该函数在接收到“\n”和“\r\n”时返回数据。 7、ser.read(size=1): 接收数据,size表示要接收的数据长度。 8、ser.flushInput(): 清空输入缓冲区数据。 9、ser.flushOutput(): 清空输出缓冲区数据。 10、ser.setRTS(level=True): 控制RTS引脚状态。 三、串口通信实例 以下是一个简单的串口通信实例,用于读取从串口接收到的数据: import serial ser = serial.Serial("COM1",9600) while True: try: ser.write(b"hello world") data = ser.readline().decode("utf-8") print(data) except KeyboardInterrupt: ser.close() break 在上面的代码中,使用了内置函数serial.Serial()创建了一个串口实例ser,然后通过while True循环不断发送和接收数据。 串口通信是硬件设备与Python等软件之间的重要通信方式,Python serial库具有丰富的函数库,方便编程人员进行串口通信,为数据采集,数据监控,控制设备等提供了重要的支持。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值