该实例是raspi和dsp电机运动控制板的串口uart通信:

import serial

class SerialHandler():
'''
raspi serial for communication
''' def __init__(self)://初始化一些默认参数,其它非初始化参数在方法中作为参数传入
self.serialdev = None//给参数赋初始值 def serial_open(self,serialdev,timeout)://用户可传入的参数,其它参数(如baudrae、bytesize...)使用默认值
try:
self.serialdev = serial.Serial(serialdev,baudrate=9600,bytesize=8,parity='N',stopbits=1,timeout=None,xonxoff=False,rtscts=False,dsrdtr=False)
except:
self.serialdev = None
#print ('Open /dev/ttyAMA0 fail!')
print ('Open %s fail!' %(serialdev))//print的用法 def serial_close(self):
if type(self.serialdev) != type(None):
self.serialdev.close()
self.serialdev = None
return True
return False def serial_write(self,txdata):
self.len_txdata = len(txdata)//后面方法serial_read要使用该变量,所以在变量前面加self
if type(self.serialdev) != type(None):
#txdata_list = list[txdata]
encodetxdata=txdata.encode('ascii')//只在本方法中使用的变量,其前可以不加self,如果该类的其它方法要用到这个变量,则其前加self
try: //发送前进行编码unicode码转换为ascii码
#self.serialdev.write(txdata_list[:])
self.serialdev.write(encodetxdata)
except:
print ('send txdata fail!')
self.serial_close()
return False
return False def serial_read(self):
if type(self.serialdev) != type(None):
try:
#self.len_txdata = len(txdata)
rxdata=self.serialdev.read(self.len_txdata)//使用前面serial_write的变量
decoderxdata = rxdata.decode()//接收后显示前解码,把scii码解码为Unicode码
               return decoderxdata
except:
print ('receive txdata fail!')
self.serial_close()
return None
return None if __name__ == '__main__'://单元测试
test = SerialHandler()//将类实例化为test,之后实例test使用类SerialHandler的方法
test.serial_open('/dev/ttyAMA0',timeout=1)
test.serial_write('abc234de')
printrxdata = test.serial_read()
print('the receive data is %s' %(printrxdata))
test.serial_close()

python入门示例程序的更多相关文章

  1. 40个Python入门小程序

    有不少同学学完Python后仍然很难将其灵活运用.我整理 37 个Python入门的小程序.在实践中应用Python会有事半功倍的效果. 分享 Github 项目,里面收集了 Python 学习资料 ...

  2. 2018-06-29 "西游记"主题Python入门示例尝试-数据结构 5.1-5.1.2

    (见前: 中文代码示例视频演示Python入门第五章 数据结构 仍然基于官方文档, 欢迎建议(尤其是如何取材). 5. Data Structures - More on Lists 列表详述 > ...

  3. Spring Data Redis入门示例:程序配置(五)

    单机配置 redis.properties配置 #redis的服务器地址 redis.host=127.0.0.1 #redis的服务端口 redis.port=6379 #客户端超时时间单位是毫秒 ...

  4. python 入门教程

    转载自:http://www.crifan.com/files/doc/docbook/python_beginner_tutorial/release/html/python_beginner_tu ...

  5. Python入门-函数的使用到程序的公布安装

    Python入门-函数的使用到Python的公布安装 本文主要适合有一定编程经验,至少掌握一门编程语言的人查看. 文中样例大多都是简单到认识英文单词就能看懂的水平,主要讲的是Python的总体使用方法 ...

  6. python入门(7)Python程序的风格

    python入门(7)Python程序的风格 Python采用缩进方式,写出来的代码就像下面的样子: # print absolute value of an integer: a = 100 if ...

  7. python入门(4)第一个python程序

    python入门(4)第一个python程序 在交互式环境的提示符>>>下,直接输入代码,按回车,就可以立刻得到代码执行结果.现在,试试输入100+200,看看计算结果是不是300: ...

  8. 2018-06-21 中文代码示例视频演示Python入门教程第五章 数据结构

    知乎原链 续前作: 中文代码示例视频演示Python入门教程第四章 控制流 对应在线文档: 5. Data Structures 这一章起初还是采取了尽量与原例程相近的汉化方式, 但有些语义较偏(如T ...

  9. 2018-06-20 中文代码示例视频演示Python入门教程第四章 控制流

    知乎原链 续前作: 中文代码示例视频演示Python入门教程第三章 简介Python 对应在线文档: 4. More Control Flow Tools 录制中出了不少岔子. 另外, 输入法确实是一 ...

随机推荐

  1. 多线程threadvar 变量设定

    Delphi管理多线程之线程局部存储:threadvar 尽管多线程能够解决许多问题,但是同时它又给我们带来了很多的问题.其中主要的问题就是:对全局变量或句柄这样的全局资源如何访问?另外,当必须确保一 ...

  2. request :fail url not in domain list

    1.可点击开发者工具右上角 详情-域名信息,看看是否配置了域名: 2. 手机预览小程序的时候,打开调试

  3. Java InputStream、String、File相互转化

    String --> InputStreamByteArrayInputStream stream = new ByteArrayInputStream(str.getBytes()); Inp ...

  4. java在线聊天项目0.1版本 制作客户端窗体,使用swing(用户界面开发工具包)和awt(抽象窗口工具包)

    建立Chat项目,并在项目中创建窗口类 package com.swift; import java.awt.BorderLayout; import javax.swing.JFrame; impo ...

  5. 安装ruby开发环境

    如何快速正确的安装 Ruby, Rails 运行环境 对于新入门的开发者,如何安装 Ruby, Ruby Gems 和 Rails 的运行环境可能会是个问题,本页主要介绍如何用一条靠谱的路子快速安装 ...

  6. 命令行发送UDP

    https://www.cnblogs.com/Dennis-mi/articles/6866762.html: 如果往本地UDP端口發送數據,那麼可以使用以下命令:echo “hello” > ...

  7. 详解css媒体查询

    简介 媒体查询(Media Queries)早在在css2时代就存在,经过css3的洗礼后变得更加强大bootstrap的响应式特性就是从此而来的. 简单的来讲媒体查询是一种用于修饰css何时起作用的 ...

  8. 排序算法C语言实现——堆排序

    /*堆排nlog(n)*//*堆排复杂度分析1.建堆((n*log(n))/2)    循环n/2次,每次调用HeapAdjust函数    HeapAdjust内部循环log(n)2.调整堆(((n ...

  9. BRVAH(让RecyclerView变得更高效) (2)

    本文来自网易云社区 作者:吴思博 1.2 宫格和列表的混排样式 关于 Grid 和List 的混排样式,Grid 样式是一行有多个,而 List样式是一行只有一个. 我们可以把 List 样式看成是G ...

  10. openscad 3Dmodels 笔记

    参考链接 官方文档 官方文档之--代码 如何快速上手 打开openSCAD后界面如下: 选择其中的examples,从basic看起.配合官方文档中的first step部分,和官方文档--代码写法即 ...