python串口

python 对串口的操作

天涯浪子 提交于 2020-03-21 07:12:38
我用的是“线程轮寻”方式。 就是打开串口后,启动一个线程来监听串口数据的进入,有数据时,就做数据的处理(也可以发送一个事件,并携带接收到的数据)。 我没有用到串口处理太深的东西。 客户的原程序不能给你,不过我给你改一下吧。 里面的一些东西,已经经过了处理,要运行,可能你要自己改一下,把没有用的东西去掉。 我这里已经没有串口设备了,不能调了,你自己处理一下吧,不过基本的东西已经有了。 ================================================================= #coding=gb18030 import sys,threading,time; import serial; import binascii,encodings; import re; import socket; class ReadThread: def __init__(self, Output=None, Port=0, Log=None, i_FirstMethod=True): self.l_serial = None; self.alive = False; self.waitEnd = None; self.bFirstMethod = i_FirstMethod; self.sendport = ''; self.log = Log; self

Python中serial的使用---树莓派

家住魔仙堡 提交于 2020-03-21 07:10:34
一、概述 pyserial模块封装了对串口的访问。 二、特性 在支持的平台上有统一的接口。 通过python属性访问串口设置。 支持不同的字节大小、停止位、校验位和流控设置。 可以有或者没有接收超时。 类似文件的API,例如read和write,也支持readline等。 支持二进制传输,没有null消除,没有cr-lf转换。 三、系统要求 python 2.3及以上版本,包括py3k。 四、使用方法和实例 1、导入pyserial模块 import serial 2、打开串行口的范例 // 打开串口0, 9600,8N1,连接超时0.5秒 import serial ①选择设备 ser=serial.Serial("/dev/ttyUSB0",9600,timeout=0.5) #使用USB连接串行口 ser=serial.Serial("/dev/ttyAMA0",9600,timeout=0.5) #使用树莓派的GPIO口连接串行口 ser=serial.Serial(1,9600,timeout=0.5)#winsows系统使用com1口连接串行口 ser=serial.Serial("com1",9600,timeout=0.5)#winsows系统使用com1口连接串行口 ser=serial.Serial("/dev/ttyS1",9600,timeout=0.5)

python读取bin文件并下发串口

馋奶兔 提交于 2020-03-10 04:54:11
python读取bin文件并下发串口 # coding:utf-8import time, serialfrom struct import *import binasciifile = open('E:\\1.bin', 'rb')i = 0while 1: c = file.read(1) # 将字节转换成16进制; ssss = str(binascii.b2a_hex(c))[2:-1] print(str(binascii.b2a_hex(c))[2:-1]) if not c: break ser = serial.Serial('COM3', 57600, timeout=1) ser.write(bytes().fromhex(ssss))# 将16进制转换为字节 if i % 16 == 0: time.sleep(0.001) #写每一行等待的时间 i += 1 ser.close()file.close() # coding:utf-8import time, serialfrom struct import *import binasciifile = open('E:\\1.bin', 'rb')i = 0while 1: c = file.read(1) # 将字节转换成16进制; ssss = str(binascii.b2a_hex(c))[2:-1

Linux串口调试

拟墨画扇 提交于 2020-02-25 08:05:47
shell方式 1.使用minicon -s配置串口并保存; 2.使用setserial /dev/ttyUSB0 -a等查看串口配置; 3.接收侧cat /dev/ttyUSB0等待串口输出; 4.发送测echo “AT+RST\r\n” > /dev/ttyUSB0发送数据。 Python模式 1.下载 pyserial包 和该包需要的 importlib包 ; 2.使用sudo python setup.py install安装这两个包; 3.shell中输入python打开python shell; 4.导入pyserial:import serial 5.创建串口ser = serial.Serial(‘/dev/ttyUSB0’,9600,timeout=1) 6.打开串口ser.open(); 7.写数据ser.write(“hello”); 8.关闭串口ser.close() 注意 :如果串口模式不是普通的8 N 1模式,则需要使用shell方式中的前两步配置串口。 参考 C语言模式 参考1 参考2 参考3 附件列表 来源: https://www.cnblogs.com/EmbeddedLiving/p/2738916ea30d51dee26313fdb63ddeb6.html

Python串口异步通信

风格不统一 提交于 2020-02-08 17:57:34
Python串口异步通信(串口接收中断) 串口是计算机上一种非常通用的设备通信协议。pyserial模块封装了python对串口的访问,为多平台的使用提供了统一的接口。 安装库 Python要使用串口功能需要导入这两个库: pyserial (基本串口功能) pip3 install pyserial pyserial-asyncio (实现异步功能需要这个库) pip3 install pyserial - asyncio 获取串口名称 使用serial.tools.list_ports.comports()函数会返回一个ListPortInfo类型的列表 import serial import serial . tools . list_ports class serial_class : def get_port ( self ) : self . port_list = serial . tools . list_ports . comports ( ) return self . port_list serial_port = serial_class ( ) port = serial_port . get_port ( ) for i in range ( 0 , len ( port ) ) : print ( tuple ( [ port [ i ] .

田小花语音机器人(六)基于Python的通过Baidu API语音控制stm32单片机灯光系统实现

心已入冬 提交于 2020-02-02 05:43:38
此工程所有代码全都上传到CSDN了。 系统功能和特点概述: 硬件: 1、在电脑上运行语音识别,电脑系统为Ubuntu19.0、使用的语音是python3.7; 2、单片机使用stm32f103rct6,板子是原子的mini开发板; 软件: 3、主要使用了百度的语音识别的API接口、线程、串口通讯; 4、实现过程只使用到了基础层次的模块和比较基础的方法,容易看懂,方便以后做更全面的升级开发; 5、使用pycham开发,后期改动在终端上可以直接运行; 6、单片机使用codemx进行配置,配置好了以后只做了很少的改动,实现了串口通信点灯的功能,具体代码和配置参考我之前的博客里: 田小花语音机器人(二)使用串口实现和单片机数据互传,使用 python的seria0l模块实现基本的串口数据传输功能 ……………………………………………………………………………… 运行过程描述(没有录视频就简单描述一下吧^^): 运行后电脑控制单片机开发板上面的灯光流水灯闪动,然后进入语音识别,电脑会播放叮的一声,开始录音。对着电脑说出“开灯”,识别成功的话,电脑会播放语音“好的,正在为您开灯”。单片机灯光会全部打开。如果没有识别到“开灯”则会播放会播放“我没听清楚”。过一秒钟后再次播放叮的一声,进入关灯语音识别,过程同开灯。程序结束。语音识别运行过程中

树莓派的串口通信

让人想犯罪 __ 提交于 2020-01-27 04:22:23
工具有:   树莓派zero v1.3   CH340 USB转串口工具   电脑端的串口调试助手 硬件接线如图:    配置: 树莓派的串口默认为串口终端调试使用,如要正常使用串口则需要修改树莓派设置。关闭串口终端调试功能后则不能再通过串口登陆访问树莓派,需从新开启后才能通过串口控制树莓派。首先释放串口,执行如下命令进入树莓派配置程序,关闭serial sudo raspi-config 打开/boot/config.txt文件。 sudo nano /boot/config.txt 找到如下配置串口,如果没有,可添加在文件最后面。 enable_uart= 1 enable_uart=1 默认波特率为115200,如需设置波特率为9600要修改文件/boot/cmdline.txt,输入以下指令: sudo nano /boot/cmdline.txt 【删除红色部分】 dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait 使用pyserial串口扩展库: pyserial安装指令 sudo apt-get install python-serial

raspberry pi init

 ̄綄美尐妖づ 提交于 2019-12-04 21:13:45
1:wifi 2:sudo apt-get update 3:sudo apt-get install fcitx fcitx-googlepinyin fcitx-module-cloudpinyin fcitx-sunpinyin 5:sudo raspi-config进行中文设置 ->Localisation Options ->Tab键切换到Select,回车,然后选择change_locale ->Configuring locales窗口中,找到zh_CN.UTF-8 UTF-8,通过空格选中,确认后再次选择zh_CN.UTF-8,然后重启机器,完成Raspbian中文环境配置 6:sudo apt-get install qt5-default pyqt5-dev pyqt5-dev-tools 7:https://wiki.openlp.org/Development:Linux_Development_Environment 8:https://packages.debian.org/sid/arm64/python3-pyqt5.qtwebengine/download dpkg -i xx.deb wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tgz mkdir -p /usr/local

菜鸟之路――Python学习之串口通信(与STC89C51)源码及打包发布试水

匿名 (未验证) 提交于 2019-12-02 22:56:40
想做上位机控制系统,就拿51来试试水。 Python环境:Win10+Python 3.6.4(64位)+serial,pyserial 一、上位机程序的编写 import serial ser = serial.Serial("COM3", 4800) ser.write(‘1‘.encode()) ser.close() 对,没错,就这几行,就把“1”的ASCII以4800的波特率发送给COM3端口 .encode()是将字符串进行编码,可以用.decode()进行解码 以上只是实现了发送一个字符,为了,让他好看点,我加入了PythonGUI。用的是tkinter模块 import serial from tkinter import * ser = serial.Serial("COM3", 4800) def open(): ser.write(‘1‘.encode()) var.set("已打开") def close(): ser.write(‘2‘.encode()) data = ser.read() print(data) var.set("未打开") root = Tk() root.title("设备打开与关闭") frame1 = Frame(root) frame2 = Frame(root) var = StringVar() var.set("未打开"

[pyserial]使用Python控制串口

∥☆過路亽.° 提交于 2019-12-02 11:07:50
最近在折腾树莓派,用到了串口,为了在自己的程序(基于Python)中可以控制串口的收发,便研究了下如何使用Python控制串口 在Python中控制串口,我使用的是pyserial模块,为了方便自己在其他地方的使用,封装了一个串口访问的类方便调用,在这记录下,整体类代码如下,仅供学习交流。 # coding:UTF-8 import serial import time import serial.tools.list_ports ''' 串口功能封装,实现的功能包括 1.自动获取计算机中的列表 2.配置串口参数包括串口号、波特率、数据位、校验位、停止位 3.收发数据 4.打开关闭串口 ''' class serial_tools: ''' 初始化:实例化类后执行的函数,实现功能如下 1.调用串口 2.设置runing状态标志位,判断串口是否处于打开状态,用于后面返回接口状态并根据状态进行打开关闭串口操作 3.打印初始化信息 ''' def __init__(self,window): self.ser=serial.Serial() self.runing=True print('from '+window+' initialing serial tools...') def Com_list(self): ''' 获取串口列表:获取计算机中所有串口,以列表形式返回