python串口通信

准备

首先需要有串口控制的设备,如果没有的话可以下载一个串口模拟器,比如这个vspd (可以上网上搜一下,之前放了个链接在这,但有同学说下的东西不对,就不放了)。

下载之后打开然后添加端口,就能看到虚拟端口的信息了
在这里插入图片描述
关于虚拟串口,比较推荐开源的com0com,但相对来说比较复杂,具体使用方法可参见这个:C#串口接化发的框架准备小节。

Python方面,需要serial库,用于巉口通信

pip install pyserial

基本的串口操作

在pyserial中设置串口的操作为

serial.Serial(portx, bps, timeout = waitTime)

其中,portx为端口名称,bps为波特率,timeout为超时时间,以秒为单位,所以操作非常简单

>>> import serial
>>> portx = "COM1"
>>> bps = 115200
>>> waitTime = 1
>>> ser = serial.Serial(portx, bps, timeout = waitTime)

在虚拟串口中可以看到COM1后面跟着[115200-N-8-1]
在这里插入图片描述

然后可以通过write来进行数据传输,最后通过close关闭串口

>>> ser.write((“hello world”.encode(“gbk”))#GBK编码
>>> ser.write(chr(0x06).encode(“utf-8))#十六进制
>>> ser.close()#关闭串口
  • 10
    点赞
  • 57
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
Python串行通信是指使用Python编程语言进行串口通信的过程。要进行串行通信,需要导入`serial`模块,并使用其中的函数和方法来实现。首先,可以使用`serial.tools.list_ports.comports()`函数获取可用串口列表,该函数会返回一个包含可用串口信息的列表。可以通过遍历这个列表来获取每个串口的信息,例如串口编号等。然后,可以使用`serial.Serial()`函数打开一个特定的串口,指定串口号、波特率等参数。如果成功打开串口,则可以进行数据的收发。最后,使用`serial.Serial`对象的`close()`方法来关闭串口连接。 下面给出一个示例代码,展示了如何使用Python进行串行通信: ```python import serial import serial.tools.list_ports # 获取可用串口列表 port_list = list(serial.tools.list_ports.comports()) if len(port_list) == 0: print('无可用串口') else: for port in port_list: print(port.device) # 打印串口编号 # 打开串口 serial_port = "COM1" # 串口编号 baud_rate = 115200 # 波特率 timeout = 0.01 # 超时时间 ser = serial.Serial(serial_port, baud_rate, timeout=timeout) if ser.is_open: print(serial_port, "打开成功") # 发送数据 data = b"Hello, World!" ser.write(data) # 接收数据 received_data = ser.read(10) print(received_data) # 关闭串口 ser.close() ``` 以上代码中,首先使用`serial.tools.list_ports.comports()`函数获取可用串口列表,并打印出每个串口的编号。然后使用`serial.Serial`函数打开一个串口,并指定串口编号、波特率和超时时间。接下来,使用`write()`方法向串口发送数据,使用`read()`方法从串口接收数据,并打印接收到的数据。最后,使用`close()`方法关闭串口连接。 通过以上代码示例,你可以了解到如何使用Python进行串行通信。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Python串口通信方法](https://blog.csdn.net/freiheit_zz/article/details/127088638)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [python--串口通信](https://blog.csdn.net/13011803189/article/details/122506226)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

微小冷

请我喝杯咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值