linux 下的串口通信 python代码

串口通信

摘要

之前要基于树莓派做一个设计,在这里面由于需要使用一个USB外设,
没办法只能通过串口通信来从USB外设那里读取数据。

外设的检测

首先在目录下,确认外设的名称(这一步是所有的前提,之前一起做的一同事就是因为这个外设都没有驱动起来),可以使用以下步骤来完成目标:

1.首先将usb设备查到USB接口中,USB设备是热插拔的,不用断电即可插入。
2.执行 ls /dev指令查询 /dev 目录下的设备名称,看是否存在类似于 ttyUSB的设备,如果有,那可说设备插入成功了
3.将设备从树莓派上拔出,重新执行 ls /dev指令,若2步骤中的设备名消失,则2中设备名即为我们所需的设备名。(如在我的个人pc上设备名为 ttyUSB0

串口通信软件minicom的配置和安装

在linux内置的源里会有minicom,因此可以使用一条简单的命令,即可安装我们的软件。

sudo apt install minicom			
sudo minicom -s				#配置minicom

1.选择Modem and dialing
linux 下的串口通信 python代码2.将文件的A B K 选项内容删掉
linux 下的串口通信 python代码3.选择 Save setup as dfl 保存设置
linux 下的串口通信 python代码

之后再退出就好了,此时连上设备,打开minicom就可以看到从串口读到的数据了。
在运行以下Python程序就可以实现将数据读到程序中并且使用。

python通信源代码

#--*encoding:UTF-8*--

import serial 
import os
portx="/dev/ttyUSB0" 
bps= 9600
timex=5 
def posiion_get():
    ser = serial.Serial(portx, int(bps), timeout=1, parity=serial.PARITY_NONE,stopbits=1) 
    if (ser.isOpen()): 
        print("open success") 
        os.system('minicom &')
        #ser.write("hello".encode()) 
       
        line = ser.readline() 
        if(line): 
            #print(str(line) )
            temp = str(line)
            temp = temp.split('=')
            #print(temp)
            temp_x_y=[]
            for i in [1,2]:
                tempq=temp[i]
                tempq=tempq.split('C')
                tempq=int(tempq[0])
                temp_x_y.append(tempq)
                #print(temp_x_y)
            line=0 
        return temp_x_y

(x,y)=posiion_get()
print(x,y)

## 希望大家多多指教,共同进步

上一篇:嵌入式Linux热点分享网络(三)


下一篇:Linux GCC下strstr的实现以及一个简单的Kmp算法的接口