python串口编程整理
python的串口网上有很多例子,这里了只是把认为好的整理到一起。
首先,应该安装serial模块,还能开始后续的操作。我用的python2.6,serial模块可以在这里下载安装serial模块下载
1,字符串的发送接收
短接串口的2、3脚,创建一个文本,如:
- import serial
- t = serial.Serial('com12',9600)
- n = t.write('you are my world')
- print t.portstr
- print n
- str = t.read(n)
- print str
import serialt = serial.Serial('com12',9600)
n = t.write('you are my world')
print t.portstr
print n
str = t.read(n)
print str
或者你可以稍微添加几句,变成你任意输入后打印出你的键入信息。
- import serial
- t = serial.Serial('com12',9600)
- print t.portstr
- strInput = raw_input('enter some words:')
- n = t.write(strInput)
- print n
- str = t.read(n)
- print str
import serialt = serial.Serial('com12',9600)
print t.portstr
strInput = raw_input('enter some words:')
n = t.write(strInput)
print n
str = t.read(n)
print str
其中,read(value)方法的参数value为需要读取的字符长度。 如果想要全部读取,提供两个方法:
1)inWaiting::监测接收字符。 inWaitting返回接收字符串的长度值,然后把这个值赋给read做参数。
2)readall()::读取全部字符。
===================================================================================================================================
2,十六进制显示
十六进制显示的实质是把接收到的字符诸葛转换成其对应的ASCII码,然后将ASCII码值再转换成十六进制数显示出来,这样就可以显示特殊字符了。
在这里定义了一个函数,如hexShow(argv),代码如下:
- import serial
- def hexShow(argv):
- result = ''
- hLen = len(argv)
- for i in xrange(hLen):
- hvol = ord(argv[i])
- hhex = '%02x'%hvol
- result += hhex+' '
- print 'hexShow:',result
- t = serial.Serial('com12',9600)
- print t.portstr
- strInput = raw_input('enter some words:')
- n = t.write(strInput)
- print n
- str = t.read(n)
- print str
- hexShow(str)
import serialdef hexShow(argv):result = ''hLen = len(argv)for i in xrange(hLen):hvol = ord(argv[i])hhex = '%02x'%hvolresult += hhex+' 'print 'hexShow:',resultt = serial.Serial('com12',9600)
print t.portstr
strInput = raw_input('enter some words:')
n = t.write(strInput)
print n
str = t.read(n)
print str
hexShow(str)
===================================================================================================================================
3,十六进制发送
十六进制发送实质是发送十六进制格式的字符串,如'\xaa','\x0b'。重点在于怎么样把一个字符串转换成十六进制的格式,有两个误区:
1)'\x'+'aa'是不可以,涉及到转义符反斜杠
2)'\\x'+'aa'和r'\x'+'aa'也不可以,这样的打印结果虽然是\xaa,但赋给变量的值却是'\\xaa'
这里用到decode函数,
- list='aabbccddee'
- hexer=list.decode("hex")
- print hexer
list='aabbccddee'
hexer=list.decode("hex")
print hexer
需要注意一点,如果字符串list的长度为奇数,则decode会报错,可以按照实际情况,用字符串的切片操作,在字符串的开头或结尾加一个'0'
假如在串口助手以十六进制发送字符串"abc",那么你在python中则这样操作“self.l_serial.write(”\x61\x62\x63") ”
当然,还有另外一个方法:
- strSerial = "abc"
- strHex = binascii.b2a_hex(strSerial)
- #print strHex
- strhex = strHex.decode("hex")
- #print strhex
- self.l_serial.write(strhex);
strSerial = "abc"strHex = binascii.b2a_hex(strSerial)#print strHexstrhex = strHex.decode("hex")#print strhexself.l_serial.write(strhex);
同样可以达到相同目的。
那么,串口方面的就整理完了。
源代码
额外一个小知识:
索引:也称作是下标操作,那么python就会为你抓取序列中对应位置的项目。它是从0开始计数,那么str[0]即为第一个项目, str[3]为第四个。(str只是一个参考序列)。当然呢,python有点不同是它可以是负数,位置就是从序列尾开始计算的。str[-1]表示序列的最后一个元素,而str[-2]为倒数第二个。
切片操作:顾名思义,就是可以连续一整块,把什么切成几段,但那一段是连续的。它是序列名后跟一个方括号,方括号有一对可选的数字,并用冒号分割。数是可选的,但冒号是必须的。例如str[1:3]返回从位置1开始,包括位置2,但是不包括位置3,返回的是一个含有两个项目的切片。类似,str[:]返回整个序列的拷贝。同样,它也是可以用负数的。
转自:http://blog.csdn.net/xhao014/article/details/7640568
python串口编程整理相关推荐
- python串口编程整理(更新完)
python的串口网上有很多例子,这里了只是把认为好的整理到一起. 首先,应该安装serial模块,还能开始后续的操作.我用的python2.6,serial模块可以在这里下载安装serial模块下载 ...
- Python 串口编程
Python版本:2.7.6 一.安装串口模块 参考: http://blog.csdn.net/jj10200410/article/details/8593490 从http://pyserial ...
- windows中Python串口编程(一)
在windows中,使用python进行串口编程需要安装一个Serial模块 pyserial: 下载地址:https://pypi.python.org/pypi/pyserial 下载完成后得到一 ...
- python串口通信的接收与发送_python串口编程整理(更新完)
python的串口网上有很多例子,这里了只是把认为好的整理到一起. 首先,应该安装serial模块,还能开始后续的操作.我用的python2.6,serial模块可以在这里下载安装serial模块下载 ...
- Python串口编程
python的串口网上有很多例子,这里了只是把认为好的整理到一起. 首先,应该安装serial模块,还能开始后续的操作.我用的python2.6,serial模块可以在这里下载安装serial模块下载 ...
- Python串口编程(转载)
python的串口网上有很多例子,这里了只是把认为好的整理到一起. 首先,应该安装serial模块,还能开始后续的操作.我用的python2.6,serial模块可以在这里下载安装serial模块下载 ...
- python串口编程_python串口通信
首先,应该安装serial模块pySeiral,还能开始后续的操作.在windows环境最好安装32位的python,否则可能无法安装pySerial,原因不明,如果有人解决该问题,可留言告诉我. 1 ...
- python串口编程_- python串口编程实例
python读取串口信息#e# 4.python简单程序读取串口信息的方法 具体分析如下: 这段代码需要调用serial模块,通过while循环不断读取串口数据 5.Python简单串口收发GUI界面 ...
- ubuntu使用python读串口_ubuntu16.04上Python串口编程学习1
学习第一课 通过 ubuntu桌面串口软件 CuteCom与 程序端的实现串口通信. 硬件连接采用2条 USB转485的线,对连. 两条USB转485线: T/R+ ---------T/R+ , ...
最新文章
- 【通知】2021-2022-1线性代数课程答疑安排
- 【CNN】一文读懂卷积神经网络CNN
- hihoCoder#1196 : 高斯消元·二(开关灯问题)
- 可爱的特殊字符集收集
- 给 ABAP ALV 报表的数据行增添颜色效果试读版
- idea撤销与恢复快捷键_IntelliJ IDEA 重做快捷键和配置哲学
- Java学习、简单代码编译
- Java内存区域分布
- H264基本概念之 宏块、片和片组
- 函数的动态参数和作用域
- UISegmentedControl
- IT界的悲哀--做互联网,就要跳出互联网
- Eclipse使用Git上传新项目到GitHub
- Flask框架+ajax框架
- 分布式定时任务解决方案
- 蓝牙温度检测系统(基于BT08-B蓝牙模块)
- 用矩阵解方程式的运算-高斯消元法
- Fabric.js 自由绘制椭圆
- 小米air2se耳机只有一边有声音怎么办_小米真无线蓝牙耳机Air2 SE体验:花小钱也能办大事...
- java设计模式之Facade模式
热门文章
- 一个 ChatGPT,还能养活多少 AI 新老板?
- STM的PWM与DAC学习
- Embedding Temporal Network via Neighborhood Formation
- 【打卡】电子表格符号转换(简单)
- 全球顶级的数据科学盛会KDD8月25日线上启幕,四大亮点首发,快抢鲜进!
- C# 4 中的 Dynamic 关键字
- zblogPHP万能型主题模板希望V 1.5.3(Hopelee)
- Linux 通过端口号查看进程信息
- java iterable stream,在Java中将Iterable转换为Stream
- 其实你也可以做出一个抖音(文末实战项目分享)