[Python] 读写串口

# -*- coding: utf-8 -*- 
# TODO 串口读取数据
import serial  # 导入串口包
import time  # 导入时间包
 
com_name = "COM100" 
ser = serial.Serial(com_name,115200,timeout = 0.5)  # 开启com1口,波特率115200,超时0.5s
ser.flushInput()  # 清空缓冲区
 
def main():
    while True:
        count = ser.inWaiting() # 获取串口缓冲区数据
        if count !=0 :
            data = (bytes)(ser.read(ser.in_waiting))     # 读进来之后,赋予的类型是Bytes
            len_recv = len(data)            
            print("[",time.time(),"]Len>>",len_recv)
            print("Data>>",str(data) )   ##打印收到数据         
            ser.write( data )  #收到的数据发出去
        time.sleep(0.2)  # 延时0.2秒,免得CPU出问题(线程占满时间片)
   
if __name__ == '__main__':
    print("waiting receive uart [",com_name,"] data(GBK Format)...")
    main()

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Python 串口读写是指使用Python编程语言来读取和写入串行通信端口的数据。串口通信是一种通过串行接口在两个设备之间进行数据传输的方式。 要在Python中进行串口读写,首先需要安装pySerial库。这个库提供了一些用于串口通信的函数和工具类。 首先,我们需要导入pySerial库: ```python import serial ``` 然后,我们可以创建一个serial.Serial对象来表示一个打开的串口连接。我们需要指定串口端口号、波特率和其他一些参数。例如: ```python ser = serial.Serial('/dev/ttyUSB0', 9600, timeout=1) ``` 这行代码创建了一个串口对象ser,它表示了一个连接到/dev/ttyUSB0端口,波特率为9600的串口。timeout参数指定了读取串口数据的超时时间,单位是秒。 现在,我们可以使用ser对象来读取和写入串口数据了。要读取串口数据,可以使用read()方法。例如: ```python data = ser.read(10) ``` 这行代码从串口中读取了最多10个字节的数据,并将其存储在data变量中。 要写入串口数据,可以使用write()方法。例如: ```python ser.write(b'Hello') ``` 这行代码向串口写入了字节流b'Hello'。 最后,当我们完成对串口读写操作之后,需要关闭串口连接,以释放资源。可以使用close()方法来关闭串口连接。例如: ```python ser.close() ``` 这就是使用Python进行串口读写的基本操作。当然,pySerial库还提供了其他一些功能,如监听串口状态、设置串口参数等,可以根据需要来使用。 ### 回答2: 在Python中,我们可以使用pyserial库来进行串口读写操作。要使用pyserial库,我们首先需要安装它。可以通过在终端中运行以下命令进行安装: ``` pip install pyserial ``` 安装完毕后,我们可以使用以下代码示例进行串口读写操作: ```python import serial # 打开串口 ser = serial.Serial('/dev/ttyUSB0', baudrate=9600, timeout=1) # 向串口写入数据 ser.write(b'Hello World\n') # 从串口读取数据 data = ser.readline() print(data) # 关闭串口 ser.close() ``` 首先,我们使用`serial.Serial`函数打开一个串口连接。`/dev/ttyUSB0`参数表示串口设备的路径,`baudrate`参数表示波特率,`timeout`参数表示读取超时时间。 然后,我们使用`ser.write`函数向串口写入数据,传入的参数是要发送的字节数据,可以通过`b`前缀将字符串转换为字节。 接下来,我们使用`ser.readline`函数从串口读取一行数据,并将其存储到变量`data`中。最后,我们使用`print`语句将读取到的数据打印出来。 最后,我们使用`ser.close`函数关闭串口连接。 通过以上代码示例,我们可以实现串口读写操作,可以根据自己的需求来读取和写入数据。 ### 回答3: 在Python中,我们可以使用pySerial库来进行串口读写操作。该库提供了丰富的函数和方法,使得串口通信变得简单易用。 首先,我们需要安装pySerial库。可以通过在命令行中运行`pip install pyserial`来安装。 接下来,我们可以使用`serial.Serial()`函数来创建一个串口对象,并指定串口号、波特率等参数。例如,`ser = serial.Serial('COM1', 9600)`创建了一个串口对象ser,将COM1端口以9600波特率打开。 要进行串口的写操作,我们可以使用`ser.write()`方法,将要发送的数据以字节流的形式写入串口。例如,`ser.write(b'Hello World')`将字符串'Hello World'发送到串口。 如果想要读取串口接收到的数据,可以使用`ser.read()`方法。该方法将返回一个字节流,我们可以使用`decode()`函数将其转换为字符串。例如,`received_data = ser.read().decode()`读取一个字节的数据,并将其转换为字符串。 除了以上方法,pySerial库还提供了一些其他的读写函数和方法,例如`ser.readline()`可以读取一行数据,`ser.flush()`可以清空串口缓冲区。根据具体需求,我们可以选择适合的方法来完成串口读写操作。 总之,使用pySerial库可以在Python中进行串口读写操作。通过合理地选择函数和方法,我们可以方便地与外部设备进行串口通信。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值