串口编程 Python 、pyserial

1、串口编程 Python 、pyserial 

网址:http://www.douban.com/group/topic/7400483/

import sys,os 
import serial 
ser=serial.Serial(port='COM5',baudrate=9600,bytesize=8,parity='N',stopbits=1,timeout=5) 

str="" 
while ser.isOpen(): 
x=ser.readline(200) 
print x, 
str=str+x 

ser.close() 

 

2、python socket编程 UDP

网址:http://www.2cto.com/kf/201412/360043.html

server.py

import socket
 
BUF_SIZE = 1024
server_addr = ('127.0.0.1',8888)
server = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
server.bind(server_addr)
while True:
     print "waiting for data"
     data,client_addr = server.recvfrom(BUF_SIZE)
     print 'Connected by ',client_addr,' Receive data : ',data
     server.sendto(data,client_addr)
server.close()

 client.py

 

import socket
import struct
 
BUF_SIZE = 1024
server_addr = ('127.0.0.1',8888)
client = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
 
while True:
     data = raw_input("Please input some string > ")
     client.sendto(data,server_addr)
     data,addr = client.recvfrom(BUF_SIZE)
     print "Data : ",data
client.close()

 3、python网络编程之TCP通信实例和socketserver框架使用例子

1)TCP是一种面向连接的可靠地协议,在一方发送数据之前,必须在双方之间建立一个连接,建立的过程需要经过三次握手,通信完成后要拆除连接,需要经过四次握手,这是由TCP的半关闭造成的,一方在完成数据发送后要发送一个FIN来终止这个方向的连接,一个TCP连接在收到一个FIN后仍能发送数据,但应用程序很少这么做,下面是TCP连接建立和拆除的过程:


 

2)python可以实现TCP服务器和客户端的编程,下面是代码:

服务器端:

#!/usr/bin/env python
import socket
host="localhost"
port=10000
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.bind((host,port))
s.listen(5)
while 1:
 sock,addr=s.accept()
 print "got connection form ",sock.getpeername()
 data=sock.recv(1024)
 if not data:
  break
 else:
  print data

 
 
客户端:

#!/usr/bin/env python
import socket
host="localhost"
port=10000
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect((host,port))
s.send("hello from client")
s.close()

 3)使用socketserver框架编写TCP服务器

    Socketserver模块可以简化网络服务器的编写,它包含了四种服务器类,TCPServer使用TCP协议,UDPServer使用UDP协议,还有两个不常使用的,即UnixStreamServer和UnixDatagramServer,这两个类仅仅在unix环境下有用。

    使用服务器编程,需要进行一下步骤,先建立一个请求句柄类,这个类继承自BaseRequestHandler类,建立这个类后重写它的handle方法,然后实例化服务器类,把主机名,端口号和句柄类传给它,然后调用server_forever()方法来处理请求。

   使用socketserver框架的服务器:

import SocketServer
host=''
port=10000
class Handler(SocketServer.StreamRequestHandler):

 def handler(self):
  addr=self.request.getpeername()
  print "got connection from",addr
  self.wfile.write("connected")

server=SocketServer.TCPServer((host,port),Handler)
server.serve_forever()

 上面的socketserver服务器只能处理一个请求,如果要处理多个请求,可以用forking或者threading实现,实现多进程或者多线程服务器。下面是使用forking和threading的服务器代码:

使用forking的服务器:

from SocketServer import TCPServer,ForkingMixIn,StreamRequestHandler
class Server(ForkingMixIn,TCPServer):pass
class Handler(StreamRequestHandler):

 def handle(self):
  addr=self.request.getpeername()
  print "got connection from",addr
  self.wfile.write('connected')

server=Server((''.10000),Handler)
server.serve_forever()

 使用多线程的服务器:

 

from SocketServer import TCPServer,ThreadingMixIn,StreamRequestHandler
class Server(ThreadingMixIn,TCPServer):pass
class Handler(StreamRequestHandler):
 def handle(self):
  addr=self.request.getpeername()
  print "got connection from",addr
  self.wfile.write("connected")

server=Server(('',10000),Handler)
server.serve_forever()

 4、python Tcp 小例子

服务端代码server.py
#coding:utf-8
import socket
import datetime
 
"""
定义基本的信息
"""
HOST = ""            #主机
PORT = 23151         #端口
ADD = (HOST, PORT)
BUFFERSIZE = 1024    #缓冲区大小
 
"""
建立socket,绑定地址和开始监听
"""
TcpSerSock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)    #创建socket
TcpSerSock.bind(ADD)       #绑定地址和端口
TcpSerSock.listen(10)      #开始监听,监听数目同时间不超过10个
 
"""
socekt建好后,开始进行连接和数据的传输
"""
print "服务器等待连接......"
TcpCliSock, addr = TcpSerSock.accept()  #开始连接
while True:
    date = TcpCliSock.recv(BUFFERSIZE)   #接受数据
    if date:     #如果接受到了数据
        curTime = datetime.datetime.now()  #获得当前时间 格式是:datetime.datetime(2012, 3, 13, 1, 29, 51, 872000)
        curTime = curTime.strftime('%Y-%m-%m %H:%M:%S')     #转换格式
        print "%s  %s" % (addr, curTime) 
        print date
        #发数据
        sendDate = raw_input("input:")
        TcpCliSock.send('%s' % (sendDate))   #发数据   
        if date == '88':
            break  
     
"""
连接完毕,关闭套接字
"""
print "server close"
TcpCliSock.close()
TcpSerSock.close()
 
 
 
 
 
 
 
客户端代码 client.py
#coding:utf-8
import socket
import datetime
 
"""
定义基本的信息: 主机和端口要和服务器一致
"""
HOST = "localhost"  #服务其地址
PORT = 23151       #服务器端口
BUFFERSIZE = 1024
ADDR = (HOST, PORT)
 
"""
建立套接字,开始连接
"""
TCPClient = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
TCPClient.connect(ADDR) #连接服务器
 
"""
开始进行数据的传输
"""
while True:
    senddate = raw_input("input:")
    if senddate:
        TCPClient.send('%s' % (senddate))  #发送数据
         
    recvdate = TCPClient.recv(BUFFERSIZE)    #接受数据
    curTime = datetime.datetime.now()  #获得当前时间 格式是:datetime.datetime(2012, 3, 13, 1, 29, 51, 872000)
    curTime = curTime.strftime('%Y-%m-%m %H:%M:%S')     #转换格式
    print "%s  %s" % (HOST, curTime)
    print  recvdate
    if recvdate == '88':
            break  
     
"""
传输完毕,关闭套接字
"""
print "client close"
TCPClient.close()

 

相关推荐

Python串口编程避坑指南:为什么pip install serial不管用?pyserial的正确安装姿势

本文详细解析了Python串口编程中常见的`pip install serial`无效问题,揭示了`serial`与`pyserial`的历史命名冲突,并提供了正确的安装方法和跨平台调试技巧。通过实战代码示例,帮助开发者高效连接和调试串口设备,避免常见的`ModuleNotFoundError`错误。

weixin_33688840的博客 319

Pyserial设置缓冲区大小失败

set_buffer_size()需要在串口打开后才能调用。

qq_53715621的博客 770

Python串口通信实战:pyserial串口助手示例

串口通信(Serial Communication),是一种常见的设备间通信方式,它通过串行端口(如RS-232)进行数据的发送和接收。这种方式在嵌入式系统、机器人技术、以及多种硬件接口中广泛使用。Python作为一种强大的编程语言,提供了多个库来实现串口通信,其中最常用的就是pyserial。除了使用标准的 GUI 控件,wxPython 允许开发者自定义控件,以满足特殊的界面需求。同时,可以自定义主题样式以改变应用程序的外观。# 自定义样式# 绑定自定义的事件处理")

weixin_34511754的博客 1986

pyserial 串口通信,数据接收不完整

python串口通信缓冲区大小设置

EXEC_CHRONICLE_KEY的博客 1913

Python实现仪器自动化控制(进阶版)

Python完全胜任对仪器的自动化控制,通过Pyserial和Pyvisa实现了仪器端和用户端的通信。同时Python可以DIY自己的用户界面即GUI,从而方便用户操作仪器。

weixin_41261080的博客 8228

python库之pyserial用法,pyserial和serial的区别

参考链接: Welcome to pySerial’s documentation — pySerial 3.4 documentation GitHub - pyserial/pyserial: Python serial port access library API详细内容参见链接1。以下内容有任何问题欢迎指正! 目录pyserial和serial的区别pyserial库示例常见pySerial APIserial.Serial()open()close()__ del __()write(dat

Electrical_IT的博客 4万+

不同python版本在使用pyserial的一些使用区别

笔者在用pyserial打开虚拟串口时出现了一些问题,最后发现是python版本的问题,现将几种情况总结如下 1.实际串口#查询串口号 geek@geek-Lenovo-G40-70:~/Documents/RaspberryPi$ dmesg | grep ttyUSB* [ 1642.241139] usb 2-2: ch341-uart converter now attached to

weixin_38685248的博客 7694

python pyserial编程 找到想要的串口

之前写过一个threading的帖子操作串口与stm32通信,当时未多想没有发现其中的bug,因为电脑可能连有多个串口,那么需要找到合适的那个串口进行通信,于是有了下面的代码,分享一下。 ...... import serial.tools.list_ports if __name__ == "__main__": global num num = random.randint(20, 30)...

cp_srd的博客 3633

python串口编程实例-Python使用pyserial进行串口通信的实例

安装pyserialpip install pyserial查看可用的端口# coding:utf-8import serial.tools.list_portsplist = list(serial.tools.list_ports.comports())if len(plist) >>", serialFd.name)所发十六进制需转换为以下格式# 所发十六进制字符串010591F5...

weixin_39973196的博客 858

python串口编程视频_Python使用pyserial进行串口通信的实例

安装pyserialpip install pyserial查看可用的端口# coding:utf-8import serial.tools.list_portsplist = list(serial.tools.list_ports.comports())if len(plist)

weixin_39922534的博客 448

革命性串口通信库pyserial:跨平台Python串口编程终极指南

pyserial是一个功能强大的Python串口通信库,为开发者提供了简单易用且跨平台的串口访问解决方案。无论是开发嵌入式系统、物联网设备还是工业自动化应用,pyserial都能帮助你轻松实现与串口设备的通信。本文将为你提供一份全面的pyserial使用指南,从基础安装到高级应用,助你快速掌握串口编程的精髓。 ## 为什么选择pyserial? 在众多串口通信库中,pyserial脱颖而出的原

gitblog_00645的博客 326

神奇的python(六)之python串口操作(pyserial

简介:最近项目突然要使用python串口操作,这不,查资料,翻文档,是时候写一份串口操作的简要用法,以后有时间可以使用pyqt再写个界面,弄个串口调试终端。 (1) 安装pyserial库 pip install pyserial (2) pyserial库常用函数介绍 serial = serial.Serial(‘COM1’, 115200) 打开COM1并设置波特率为1152......

absinjun的博客 4万+

Python串口操作(pyserial)源代码

Python串口操作(pyserial)源代码 去发现同类优质开源项目:https://gitcode.com/ 此仓库提供了使用Python语言进行串口操作的源代码。主要利用了Pythonpyserial库来实现串口通信,支持hex格式数据的发送与接收显示。 功能简介 串口通信初始化与配置 发送hex格式数据 接收串口数据并以hex格式显示 使用说明 请确保您的环境中已安装Python及p...

gitblog_06756的博客 452

全网最适合入门的面向对象编程教程:04 类和对象的 Python 实现-为自定义类添加方法(PySerial 库接收串口数据)

本文我们主要讲解了如何为自定义类添加方法,pyseria库的基本使用(串口数据收发、serial.Serial类的属性和方法),VSPDPro虚拟串口软件使用方法等,并使用自定义的串口类和PC主机进行串口数据收发。

weixin_44719294的博客 2106

Python】Windows中Python Serial获取PC下串口名称

在windows中,使用python进行串口编程需要安装一个Serial模块pyserial。 详细的使用信息可以阅读pySerial的文档http://pythonhosted.org/pyserial/#!/usr/bin/env python #-*- coding: utf-8 -* import serial import serial.tools.list_portsplist = l

Catullus的博客 9957

python serial库_Pyserial python 串口驱动库 -2.7,包含win32 2/3安装包,以及源码 方 Com Port 编程 238万源代码下载- www.pudn.com...

文件名称: Pyserial下载 收藏√ [5 4 3 2 1]开发工具: Python文件大小: 568 KB上传时间: 2014-12-10下载次数: 4提 供 者: mo详细说明:python 串口驱动库pyserial-2.7,包含win32 python2/3安装包,以及源码安装包和安装方法。-Python serial driver library pyserial-2...

weixin_39738251的博客 664

django串口通信

安装模块     pip install serial   pip install pyserial Opening serial ports Open port at "9600,8,N,1", no timeout: >>> import serial >>> ser = serial.Serial('/dev/ttyUSB0')...

1031

Linux Ubuntu系统串口编程实践教程

本文还有配套的精品资源,点击获取 简介:本文详细介绍如何在Linux Ubuntu系统中进行串口编程和调试,适用于嵌入式设备、物联网项目开发等场景。内容涵盖串口基础、使用Pythonpyserial库进行串口通信,以及通过命令行工具picocom进行快速调试。文章还包括了编写可处理多线程和异常处理的高级串口调试程序的建议。 1. Linux Ubuntu中的串口...

weixin_29215509的博客 1836
上一篇: Oracle存储过程传参并返回列表以及Java调用过程
下一篇: require.js的用法
水深千尺
博客等级 码龄18年 5粉丝 94原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值