Raspberr pi串口发送接收的Python实现

来源:互联网 发布:linux安装无线网卡驱动 编辑:程序博客网 时间:2024/05/29 19:40

最近在做一个Raspberry pi(树莓派)的应用,需要用串口收发数据,鼓捣了一会儿就成功了,跟大家分享一下过程。

我用Python进行编程,利用python-serial模块可以很方便的对串口操作。

1.安装Python:

sudo aptitude install python-dev

2.安装python-serial:

sudo apt-get install python-serial

我用的串口模块形如下图,很常见的USB转串口模块。

(图片引自百度)

3.将串口模块插到树莓派的USB接口上,输入ls命令:

ls /dev/tty*

查看是否有ttyUSB0文件,也有可能是ttyUSB1,之后我们需要赋予文件读写权限:

sudo chmod 777 /dev/ttyUSB0


4.接下来打开Python IDE:

python

import python-serial ,创建serial实例ser,端口为 ‘/dev/ttyUSB0',波特率设置为115200bps,校验位无

>>> import serial>>> ser=serial.Serial('/dev/ttyUSB0',115200,parity=serial.PARITY_NONE)

检查串口是否打开

>>> ser.isOpen()True

如果返回False,使用open()打开串口

>>> ser.open()

检测发送是否正常:

>>> ser.write('Raspberrt pi')

如果串口接收端收到发送信息,说明串口通信成功!


写个Python脚本实现串口的发送接收:

vim serTR.py

代码如下:

#!/usr/bin/python# Filename: text.pyimport serialser = serial.Serial('/dev/ttyUSB0',115200,parity=serial.PARITY_NONE)if ser.isOpen == False:        ser.open()ser.write("serial turn on")try:        while 1:                size = ser.inWaiting()                if size != 0:                        response = ser.read(size)                        print response                        ser.flushInput()except keyboardInterrupt:        ser.close()

其中ser.flushInput()用于清空缓存。

有什么想法,欢迎交流。




0 0
原创粉丝点击