linux 下的串口通信 python代码

10 篇文章 0 订阅
1 篇文章 0 订阅

串口通信

摘要

之前要基于树莓派做一个设计,在这里面由于需要使用一个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
选择Modem and dialing2.将文件的A B K 选项内容删掉
将文件的ABK选项删掉3.选择 Save setup as dfl 保存设置
保存设置

之后再退出就好了,此时连上设备,打开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)

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

  • 4
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值