python串口发送16进制_转:Python通过pyserial控制串口操作

本文介绍了如何使用Python的pyserial库进行串口通信,包括打开串口、读写数据的基本操作,并详细讲解了如何进行16进制数据显示和发送,提供了解决特殊字符显示和字符串转16进制的方法。
摘要由CSDN通过智能技术生成

https://blog.csdn.net/lovelyaiq/article/details/48101487

你想通过串行端口读写数据,典型场景就是和一些硬件设备打交道(比如一个机器人或传感器)。尽管你可以通过使用Python内置的I/O模块来完成这个任务,但对于串行通信最好的选择是使用 pySerial包 。 这个包的使用非常简单,先安装pySerial,使用类似下面这样的代码就能很容易的打开一个串行端口:

一、用python操作串口,首先需要下载相关模块:

pyserial (http://pyserial.wiki.sourceforge.net/pySerial)

pywin32 (http://sourceforge.net/projects/pywin32/)

import serial

ser = serial . Serial('/dev/tty.usbmodem641', # Device name varies

baudrate = 9600,

bytesize = 8,

parity = 'N',

stopbits = 1)

设备名对于不同的设备和操作系统是不一样的。 比如,在Windows系统上,你可以使用0,1等表示的一个设备来打开通信端”COM0”和”COM1”。 一旦端口打开,那就可以使用read() , readline() 和 write() 函数读写数据了。

二,十六进制显示

十六进制显示的实质是把接收到的字符转换成其对应的ASCII码,然后将ASCII码值再转换成十六进制数显示出来,这样就可以显示特殊字符了。在这里定义了一个函数,如hexShow(argv),代码如下:

[python] view plain copy

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)

3,十六进制发送

十六进制发送实质是发送十六进制格式的字符串,如'\xaa','\x0b'。重点在于怎么样把一个字符串转换成十六进制的格式,有两个误区:

1)'\x'+'aa&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值