美文网首页树莓派Python学习资料整理
使用Python操作树莓派串口

使用Python操作树莓派串口

作者: 刘小白DOER | 来源:发表于2021-07-21 23:25 被阅读0次

    最近在考虑树莓派串口的事情,需要实现串口数据接收,python处理后再发送出去。今天就来测试一下,看看怎么实现。

    先来看看树莓派的GPIO串口TXD、RXD 的位置。

·    1、开始之前需要开启串口,并关闭串口登录。

        可以vnc过去可视化界面来操作,也可以终端输入sudo raspi-config来命令行操作,操作完成后的结果就是第二张图。

    2、查看当前串口分配方式。

    终端运行ls /dev -al | grep serial,查看到Serial0 就是GPIO映射的串口,默认是ttyS0。Serial1 就是板载蓝牙映射的串口,默认是ttyAMA0。我们使用的是ttyS0。

    3、python测试

         以9600波特率打开串口ttyS0,serial.Serial('/dev/ttyS0', 9600)。因为是软连接,/dev/ttyS0可以写成/dev/serial0。

        发送字符串,然后循环接收。发送字符串需要转换为bytearray ,也可以写成“***”.encode() 。

        硬件上将将树莓派串口与pc端连接起来,TXD与RXD要反过来接入。

        笔者测试时直接将TXD、RXD 短接起来,运行结果如下,测试成功:

        在笔者测试时,一直提示错误:“module 'serial' has no attribute 'Serial'”,调试了好久,搜索一下才知道命名的serial.py与模块重名了,import serial其实是把自己给import了,坑。更换为serial_test.py后正常。

    4、串口数据接收,python处理后再发送出去

        那接下来就是完成串口数据接收,python函数处理后再发送出去的过滤加工功能,框架代码如下。your_own_function()定义自己的过滤加工功能。

    5、树莓派的两个串口说明

        实现了python操作串串口实践后,我们再来深入的了解一下树莓派的串口。树莓派4B的外设一共包含两个串口,一个是硬件串口(/dev/ttyAMA0),一个是mini串口(/dev/ttyS0)。

    硬件串口:有单独的波特率时钟源,性能高,可靠。

    mini串口:性能低、功能简单、没有波特率专用的时钟源而是由CPU内核时钟提供,所以波特率收到内核时钟的影响,内核若在智能调整功耗降低主频时,相应的这个mini串口的波特率便受到牵连了。当然可以固定内核的时钟频率,如果不考虑功耗的情况下。

    树莓派(3/4代)板载蓝牙模块,所以默认的硬件串口是给蓝牙模块使用的,而性能较差的mini串口是分配给GPIO串口TXD0、RXD0。

    如果想要使硬件串口分配给GPIO,那么需要将两者映射互相交换,这需要修改配置文件。编辑/boot/config.txt文件,在对应的文件末尾加入dtoverlay=pi3-disable-bt,蓝牙使用硬件串口,所以我们在 /boot/config.txt里面加上 dtoverlay=pi3-disable-bt ,ttyAMA0 得以释放,这时候树莓派也自动交换了ttyAMA0和ttyS0,把serial0 分配给了 ttyAMA0 。最后接着输入 sudo reboot重启生效。

    在此查看串口分配方式:ls /dev -al | grep serial,ttyAMA0与ttyS0已经交换了。再次运行python3 serial_test.py测试成功。

相关文章

  • 树莓派串口配置及minicom的安装

    1.树莓派串口配置:树莓派串口默认用于终端调试,如需使用串口,则需要修改树莓派设置。执行如下命令进入树莓派配置:s...

  • 使用Python操作树莓派串口

    最近在考虑树莓派串口的事情,需要实现串口数据接收,python处理后再发送出去。今天就来测试一下,看看怎么实现...

  • 树莓派串口通信

    树莓派的串口默认为串口终端调试使用,如要正常使用串口则需要修改树莓派设置。关闭串口终端调试功能后则不能再通过串口登...

  • MacOSX用串口(TTL)连接树莓派

    树莓派在没有显示器可用时,如何用电脑连接到树莓派中进行操作?对,使用 USB 串口转 TTL 进行连接。 MacO...

  • 树莓派——opencv读取摄像头

    7寸触摸屏设置与串口 禁用串口的控制台功能:树莓派io口引出串口默认是用来做控制台使用的,即是为了用串口控制树莓派...

  • 树莓派开启SSH的N种方法

    问题:为什么我的树莓派无法使用远程连接电脑? 解答: 由于树莓派只有一个串口,当我们开发中需要占用这个串口或者我们...

  • 树莓派串口设置

    1. 树莓派串口设置 1.1. 将树莓派的硬件串口与mini串口默认映射对换 硬件串口由硬件实现,有单独波特率时钟...

  • 树莓派知识随笔

    1、串口连接 这种方式在我树莓派的第一篇博客有讲,这里我简单介绍。 连接树莓派,树莓派GPIO串口的GND,txd...

  • 树莓派:通过红外控制蓝牙音乐播放

    【参考资料】树莓派学习笔记——UART使用linux下串口调试(只用shell) 本文的目的是在上一篇文章(树莓派...

  • 树莓派3B使用串口UART

    背景:新版的树莓派中,蓝牙占用了UART串口,要使用串口就要关闭蓝牙,然后恢复GIOP 14\15口给UART使用...

网友评论

    本文标题:使用Python操作树莓派串口

    本文链接:https://www.haomeiwen.com/subject/ucrlmltx.html