电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Python Serial串口基本操作(收發數據)

瀏覽:46日期:2022-07-06 10:18:55

1、需要模塊以及測試工具

模塊名:pyserial

使用命令下載:python -m pip install pyserial

串口調試工具:sscom5.13.1.exe

2、導入模塊

import serial

3、打開串口

直接通過new一個Serial()的實例即可打開

返回實例

# encoding=utf-8import serialif __name__ == ’__main__’: com = serial.Serial(’COM3’, 115200) print com

運行結果

Serial<id=0x3518940, open=True>(port=’COM3’, baudrate=115200, bytesize=8, parity=’N’, stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False)

4、發送數據

函數名write()

返回值為發送成功的字節數

# encoding=utf-8import serialif __name__ == ’__main__’: com = serial.Serial(’COM3’, 115200) success_bytes = com.write(’This is data for test’) print success_bytes

運行結果

21

串口工具界面

Python Serial串口基本操作(收發數據)

5、接收數據(接收固定長度數據)

函數名為read(size=1)

接收size單位的字符,是阻塞的,不接收到就一直等待接收,除非設置了超時時間(未設置該示例)

# encoding=utf-8import serialif __name__ == ’__main__’: com = serial.Serial(’COM3’, 115200) data = com.read(10) print data

運行結果

123456789a

串口工具界面

Python Serial串口基本操作(收發數據)

6、接收數據(超時時間內一直接收)

函數名為read(size=1)

參數為接收的長度,默認為1,一般傳入inWaiting(),它表示監測接收的字符串長度

配合While可以一直接收

# encoding=utf-8import serialimport timeif __name__ == ’__main__’: com = serial.Serial(’COM3’, 115200) over_time = 30 start_time = time.time() while True: end_time = time.time() if end_time - start_time < over_time: data = com.read(com.inWaiting()) data = str(data) if data != ’’:print data

運行結果

111222aaabbb1a2b3c4d

串口工具界面

Python Serial串口基本操作(收發數據)

7、封裝為類

# -*- encoding=utf-8 -*-import serialimport timeimport WriteLogclass COM: def __init__(self, port, baud): self.port = port self.baud = int(baud) self.open_com = None self.log = WriteLog.WriteLog(’ITC_LOG.LOG’) self.get_data_flag = True self.real_time_data = ’’ # return real time data form com def get_real_time_data(self): return self.real_time_data def clear_real_time_data(self): self.real_time_data = ’’ # set flag to receive data or not def set_get_data_flag(self, get_data_flag): self.get_data_flag = get_data_flag def open(self): try: self.open_com = serial.Serial(self.port, self.baud) except Exception as e: self.log.error(’Open com fail:{}/{}’.format(self.port, self.baud)) self.log.error(’Exception:{}’.format(e)) def close(self): if self.open_com is not None and self.open_com.isOpen: self.open_com.close() def send_data(self, data): if self.open_com is None: self.open() success_bytes = self.open_com.write(data.encode(’UTF-8’)) return success_bytes def get_data(self, over_time=30): all_data = ’’ if self.open_com is None: self.open() start_time = time.time() while True: end_time = time.time() if end_time - start_time < over_time and self.get_data_flag:data = self.open_com.read(self.open_com.inWaiting())# data = self.open_com.read() # read 1 sizedata = str(data)if data != ’’: self.log.info(’Get data is:{}’.format(data)) all_data = all_data + data print data self.real_time_data = all_data else:self.set_get_data_flag(True)break return all_dataif __name__ == ’__main__’: pass com = COM(’com3’, 115200) # com.open() print com.send_data(’data’) com.get_data(50) com.close()

8、對于一次函數說明(百度看到,并未測試)

readall():讀取全部字符,是阻塞的,除非接收的字符串以EOF結尾或者超出緩沖區,否則函數不會返回。一般要結合超時設置,設置串口的timeout參數

Readline():讀取一行,以/n結束,要是沒有/n就一直讀,阻塞。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 亚洲工业智能制造领域专业门户网站 - 亚洲自动化与机器人网 | SOUNDWELL 编码器|电位器|旋转编码器|可调电位器|编码开关厂家-广东升威电子制品有限公司 | 断桥铝破碎机_铝合金破碎机_废铁金属破碎机-河南鑫世昌机械制造有限公司 | 基本型顶空进样器-全自动热脱附解吸仪价格-AutoHS全模式-成都科林分析技术有限公司 | 耐酸碱胶管_耐腐蚀软管总成_化学品输送软管_漯河利通液压科技耐油耐磨喷砂软管|耐腐蚀化学软管 | 厂房出租_厂房出售_产业园区招商_工业地产&nbsp;-&nbsp;中工招商网 | 广州物流公司_广州货运公司_广州回程车运输 - 万信物流 | 玻璃钢型材_拉挤模具_玻璃钢拉挤设备——滑县康百思 | 艺术漆十大品牌_艺术涂料加盟代理_蒙太奇艺术涂料厂家品牌|艺术漆|微水泥|硅藻泥|乳胶漆 | 头条搜索极速版下载安装免费新版,头条搜索极速版邀请码怎么填写? - 欧远全 | 安徽成考网-安徽成人高考网 | 石英砂矿石色选机_履带辣椒色选机_X光异物检测机-合肥幼狮光电科技 | 线材成型机,线材折弯机,线材成型机厂家,贝朗自动化设备有限公司1 | 黑龙江「京科脑康」医院-哈尔滨失眠医院_哈尔滨治疗抑郁症医院_哈尔滨精神心理医院 | 密封圈_泛塞封_格莱圈-[东莞市国昊密封圈科技有限公司]专注密封圈定制生产厂家 | 螺杆泵_中成泵业| (中山|佛山|江门)环氧地坪漆,停车场地板漆,车库地板漆,聚氨酯地板漆-中山永旺地坪漆厂家 | 药品/药物稳定性试验考察箱-埃里森仪器设备(上海)有限公司 | 电动打包机_气动打包机_钢带捆扎机_废纸打包机_手动捆扎机 | LHH药品稳定性试验箱-BPS系列恒温恒湿箱-意大利超低温冰箱-上海一恒科学仪器有限公司 | 武汉高低温试验机-现货恒温恒湿试验箱-高低温湿热交变箱价格-湖北高天试验设备 | 三防漆–水性三防漆–水性浸渍漆–贝塔三防漆厂家 | 水压力传感器_数字压力传感器|佛山一众传感仪器有限公司|首页 | 合肥角钢_合肥槽钢_安徽镀锌管厂家-昆瑟商贸有限公司 | 洁净实验室工程-成都手术室净化-无尘车间装修-四川华锐净化公司-洁净室专业厂家 | 食品机械专用传感器-落料放大器-低价接近开关-菲德自控技术(天津)有限公司 | 【星耀裂变】_企微SCRM_任务宝_视频号分销裂变_企业微信裂变增长_私域流量_裂变营销 | 健康管理师报名入口,2025年健康管理师考试时间信息网-网站首页 塑料造粒机「厂家直销」-莱州鑫瑞迪机械有限公司 | 挖掘机挖斗和铲斗生产厂家选择徐州崛起机械制造有限公司 | 酒店品牌设计-酒店vi设计-酒店标识设计【国际级】VI策划公司 | 防爆暖风机_防爆电暖器_防爆电暖风机_防爆电热油汀_南阳市中通智能科技集团有限公司 | 长沙发电机-湖南发电机-柴油发电机供应厂家-长沙明邦智能科技 | 旋振筛_不锈钢旋振筛_气旋筛_旋振筛厂家—新乡市大汉振动机械有限公司 | CPSE安博会| 防火板_饰面耐火板价格、厂家_品牌认准格林雅 | 工业机械三维动画制作 环保设备原理三维演示动画 自动化装配产线三维动画制作公司-南京燃动数字 聚合氯化铝_喷雾聚氯化铝_聚合氯化铝铁厂家_郑州亿升化工有限公司 | 钢托盘,铁托盘,钢制托盘,镀锌托盘,饲料托盘,钢托盘制造商-南京飞天金属13260753852 | 袋式过滤器,自清洗过滤器,保安过滤器,篮式过滤器,气体过滤器,全自动过滤器,反冲洗过滤器,管道过滤器,无锡驰业环保科技有限公司 | 厚壁钢管-厚壁无缝钢管-小口径厚壁钢管-大口径厚壁钢管 - 聊城宽达钢管有限公司 | 浙江红酒库-冰雕库-气调库-茶叶库安装-医药疫苗冷库-食品物流恒温恒湿车间-杭州领顺实业有限公司 | 2025第九届世界无人机大会|