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 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

其中,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)

===================================================================================================================================

3,十六进制发送

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

1)'\x'+'aa'是不可以,涉及到转义符反斜杠

2)'\\x'+'aa'和r'\x'+'aa'也不可以,这样的打印结果虽然是\xaa,但赋给变量的值却是'\\xaa'

这里用到decode函数,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);

同样可以达到相同目的。

那么,串口方面的就整理完了。

额外一个小知识:

索引:也称作是下标操作,那么python就会为你抓取序列中对应位置的项目。它是从0开始计数,那么str[0]即为第一个项目, str[3]为第四个。(str只是一个参考序列)。当然呢,python有点不同是它可以是负数,位置就是从序列尾开始计算的。str[-1]表示序列的最后一个元素,而str[-2]为倒数第二个。

切片操作:顾名思义,就是可以连续一整块,把什么切成几段,但那一段是连续的。它是序列名后跟一个方括号,方括号有一对可选的数字,并用冒号分割。数是可选的,但冒号是必须的。例如str[1:3]返回从位置1开始,包括位置2,但是不包括位置3,返回的是一个含有两个项目的切片。类似,str[:]返回整个序列的拷贝。同样,它也是可以用负数的。

python串口通信的接收与发送_python串口编程整理(更新完)相关推荐

  1. 单片机实验八 RS232串口通信实验(接收与发送)

    实验八 RS232串口通信实验(接收与发送) 一.实验目的 1.熟悉实验软件和硬件,进行正确的接线: 2.通过实验了解串口的基本原理及使用,理解并掌握对串口进行初始化: 3.使用串口调试助手做为上位机 ...

  2. python串口通信的接收与发送_31.用python中的serial向串口发送和接收数据(案例一)...

    代码功能说明:1.向串口助手发送十六进制数据:0X01,0X03,0X00,0X00,0X00,0X01,0X84,0X0A: 2.用串口助手向代码发送数据,并将发送过来的数据保存在数据库中,按数据和 ...

  3. python串口编程整理(更新完)

    python的串口网上有很多例子,这里了只是把认为好的整理到一起. 首先,应该安装serial模块,还能开始后续的操作.我用的python2.6,serial模块可以在这里下载安装serial模块下载 ...

  4. STM32串口通信中使用printf发送数据配置方法 开发环境 Keil

    STM32串口通信中使用printf发送数据配置方法(开发环境 Keil RVMDK) 已有 12456 次阅读2011-6-29 23:29 | 在STM32串口通信程序中使用printf发送数据, ...

  5. C#解决串口通信中接收数据时延迟处理与缓存处理的方法

    转载连接: http://blog.csdn.net/yaoliang11/article/details/6885768 C#解决串口通信中接收数据时延迟处理与缓存处理的方法 时间:2011-1-2 ...

  6. STM32F103RBT6 串口1正常接收,发送过程也很正常,但TXD引脚没有波形

    STM32F103RBT6 串口1正常接收,发送过程也很正常,但TXD引脚没有波形,这个程序前几天还是正常工作,百思不得其解.后来找来开发板串口通讯例程对比发现GPIO初始化缺少一句,GPIO_Ini ...

  7. 串口通信,接收并解析数据的方式

    串口通信,接收并解析数据的方式 (点击链接阅读原文)

  8. java 采用串口通信实现LED屏发送数据中文乱码问题

    java 采用串口通信实现LED屏发送数据中文乱码问题 1.定义:Pointer p = new Pointer(MemoryBlockFactory.createMemoryBlock(1024)) ...

  9. matlab gul介绍及串口通信实现,Matlab - GUl介绍及串口通信实现(转)

    新建Blank GUI. 在新建Blank GUI界面中,包含了一般的界面元素,如菜单.按钮.坐标轴.控件等.添加必要的串口通信参数设置按钮. 2 串口数据发送与接收功能实现 2.1 建立串口通信流程 ...

最新文章

  1. Asp.Net中查询域名的Whois信息
  2. 右键命令行在这里-cmd here
  3. phpstorm 2017.1.3编辑远程项目
  4. mtk Android 编译命令自定义--添加版本号
  5. NLP通用模型decaNLP诞生,一个模型搞定十大自然语言常见任务
  6. 银河麒麟可执行文件双击,闪退问题
  7. MATLAB学习笔记(一)
  8. 我的HTML总结之常用基础便签
  9. 基于ansj_seg和nlp-lang的简单nlp工具类
  10. excel2019关闭后有残留进程_农药残留检测仪电路设计方案(原理图+PCB+BOM)
  11. Linux一些基本概念
  12. 有哪些让人相见恨晚的记笔记方法?
  13. html视频自动全屏代码,HTML5轻松实现全屏视频背景的示例
  14. 启动listener遇TNS-12555/ TNS-12560 /TNS-00525错误处理
  15. c语言寻找大富翁,PTA 7-38 寻找大富翁(25 分)解法(C/C++)暴力快排/精准堆排 解法...
  16. linux C++ 获取当前时间,以标准时间“年-月-日 时:分:秒”的形式输出
  17. pycharm中关于python虚拟环境的配置
  18. 绘制动态心形图案::R语言绘制心形图
  19. 蜻蜓FM获新一轮融资:多名创始高管已经淡出,前不久被通报下架
  20. java 音频可视化_OpenGL ES 实现可视化实时音频

热门文章

  1. 运维搭建邮件服务器,系统运维|如何在 Ubuntu 环境下搭建邮件服务器(二)
  2. OLEDB访问本地Excel
  3. mysql清空数据库所有表的命令_mysql清空表数据命令是什么?_数据库,mysql,清空表数据...
  4. 职位扫盲(CEO,CTO。。。)
  5. linux命令dm,Linux dmesg命令
  6. 开发过程中的小问题和小方法
  7. Linux Mysql 给用户授权
  8. 云计算与大数据第8章 大数据采集习题及答案
  9. 五对俄罗斯夫妇愿意让科学家对孩子进行基因编辑?|技术前沿洞察
  10. 日历计算(C++类实现)