微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > 嵌入式系统设计讨论 > 之基于Python+Pyserial的串口程序开发

之基于Python+Pyserial的串口程序开发

时间:10-02 整理:3721RD 点击:

【创龙AM4379 Cortex-A9试用体验】之基于Python+Pyserial的串口程序开发

我们在前面的试用报告中移植了Python2.7.3,并使其支持sqlite3和socket,同时也对sqlite3和socket做了相关程序功能测试。在这篇试用报告中,将介绍一种基于Python+Pyserial的串口程序测试。

Python中用于读串口的模块是 pyserial,使用非常的方便,可以从http://pypi.python.org/pypi/pyserial下载其安装包。或从本帖的附件中下载,我这里提供的pyserial2.7这个版本。

1. 安装pyserial

下载pyserial-2.7.tar.gz,将其拷贝的Ubuntu 虚拟机,执行解压命令:

tar -zxvf pyserial-2.7.tar.gz -C/media/tl437x/reference

将解压后的文件夹拷贝到NFS共享目录,

cp -R pyserial-2.7 /nfsshare

如图所示:


启动TL-4379开发板,挂载NFS文件系统:

mount -t nfs 192.168.1.107:/nfsshare /mnt-o nolock

cd /mnt

cd pyserial-2.7

ls

如图所示:


在pyserial2-7文件夹中包含了setup.py文件,该文件为pyserial的安装文件。执行如下命令安装pyserial:

./Python2.7.3/_install/bin/python setup.pyinstall

如图所示:


命令执行结束后,提示如下信息,则说明pyserial安装成功了。


2. TL-4379开发板与PC机硬件连接

我们在TL-4379开发板上运行Python语言编写的pyserial串口程序,PC机端运行串口调试助手软件。

通过查看创龙公司提供硬件手册,TL-4379开发板将UART3的TTL电平转换成了RS232电平,可以直接与PC的串口连接。

由于TL-4379与PC机上的串口均为标准的线序,即2脚对应RXD,3脚对应TXD,所以我们需要一根两端都是female的9针交叉串口线链起来,示意图:


TL-4379开发板上UART3如图所示:


TL-4379开发板与PC机USB转串口交叉连接如图所示:


3. 基于Python+pyserial的串口通信程序

在TL-4379开发板上运行的程序,监听PC上的串口软件助手发送过来的数据。当接收到PC端发送过来的数据后,将介绍到的数据原封不动的返回给PC机端。程序代码如下:

import serial  

from time import sleep  

ser = serial.Serial('/dev/ttyO3', 115200,timeout=0.5)   

def recv(serial):   

   data1 = ''  

   while True:   

       data1 =serial.read(30)   

       if data1 == '':   

           continue  

       else:  

           break  

       sleep(0.02)   

   return data1   

while True:

   data2 = ''  

   data2 =recv(ser)   

   ser.write(data2)

4. 测试

1)PC端,启动串口调试助手,根据自己的USB转串口号,设置通讯参数:115200,8位数据位,1位停止位,无奇偶校验,如下图所示:


2)TL-4379开发板端

启动开发板,挂载NFS文件系统:

mount -t nfs 192.168.1.107:/nfsshare /mnt-o nolock

将Python程序拷贝到NFS系统,在开发板上执行命令:

cd /mnt

./Python2.7.3/_install/bin/pythonpy_serial_test.py

程序处于监听状态,如图所示:


我们在PC机端的串口调试助手数据发送区输入一些字符,如:123456789,我们看一下效果,如图所示:


从上图中中显示的数据,说明我们用python编写的串口程序在TL-4379开发板上运行正常。

4. 小结

我给TL-4379定位为车间工业级的数据中继器,TL-4379即可以采集现场数据,也可将采集的数据处理后,作为一个小型数据服务终端,等待其他的客户端发出数据读取命令。通过移植Python到TL-4379,我们既可以通过串口获取其他控制仪表的数据,也可以通过自身的GPIO、ADC资源采集数据,并存储在sqlite3中,同时基于socket的服务器端程序,实时监听其他客户端的请求,将过程数据发送给第三方,运用Python开发应用程序,大大提高了我们的开发效率,大家不妨也在TL-4379开发板上搭建一些功能更加强大的应用。


小编开讲了。支持

谢谢关注            

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top