【树莓派】树莓派配置串口通讯

配置串口通讯

从树莓派的相关资料我们可以看到,树莓派有两个串口可以使用,一个是硬件串口(/dev/ttyAMA0),另一个是mini串口(/dev/ttyS0)。硬件串口有单独的波特率时钟源,性能好,稳定性强;mini串口功能简单,稳定性较差,波特率由CPU内核时钟提供,受内核时钟影响。
树莓派(3/4代)板载蓝牙模块,默认的硬件串口是分配给蓝牙模块使用的,而性能较差的mini串口是分配给GPIO串口 TXD0、RXD0。

首先运行命令

ls /dev/ser* -al

查看默认串口分配

1、关闭串口控制台

设置树莓派,在Raspberry Pi Configuration中将Serial Port设置为Enable,但是Serial Console都要Disable,即关闭串口控制台功能,然后必须重启树莓派生效。

在这里插入图片描述

也可以在命令行中输入下面命令进行配置:

sudo raspi-config

(1)上面串口的开启的步骤中,是在Raspberry Pi Configuration 界面中,将Serial Port选项ENable,也可以直接修改/boot/config.txt文件。

sudo vim /boot/config.txt

在这里插入图片描述

enable_uart=1即为Serial Port Enable串口开启,enable_uart=0即为Serial Port Disable串口关闭。

(2)上面关闭串口控制台功能,是在Raspberry Pi Configuration 界面中,将Serial Console选项Disable,可以直接修改/boot/cmdline.txt文件。

sudo vim /boot/cmdline.txt

在这里插入图片描述

cmdline.txt修改前

在这里插入图片描述

cmdline.txt修改后

去掉了“console=serial0,115200”,即Disable了串口控制台功能。

2、设置硬件串口为GPIO串口

接着将串口配置为我们的GPIO串口,对输入sudo nano/boot/config.txt命令,将下面两行内容添加到最后:

dtoverlay=pi3-miniuart-bt force_turbo=1
修改后保存并退出,内容如下图片所示:

在这里插入图片描述

重启树莓派,运行ls /dev/ser* -al,查看两个串口已经互换了位置。

在这里插入图片描述

3、安装minicom

1.minicom安装

sudo apt-get  install minicom

2.minicom启动

minicom -D /dev/ttyAMA0 -b 115200
#-b代表波特率,-D代表端口,/dev/ttyAMA0 类似于windows中的COM

4、minicom测试

连接USB转串口模块,接到树莓派端口上,发送数据,观察树莓派接收

在这里插入图片描述

5、使用pyserial

minicom仅满足调试用途,如果需要编程解决问题那么python的serial扩展库——pyserial则是一个不错的选择。

安装pyserial扩展库有很多种方法,可使用pip或者easy_install安装,也可以直接选择apt-get工具安装。
若使用apt-get工具安装,可输入以下指令

sudo apt-get install python-serial

2.串口回显程序
非常简单的一个串口程序,树莓派通过串口返回接收的内容。

import serial
import time
# 打开串口
ser = serial.Serial("/dev/ttyAMA0", 115200)
def main():
    while True:
        # 获得接收缓冲区字符
        count = ser.inWaiting()
        if count != 0:
            # 读取内容并回显
            recv = ser.read(count)
            ser.write(recv)
        # 清空接收缓冲区
        ser.flushInput()
        # 必要的软件延时
        time.sleep(0.1)
    
if __name__ == '__main__':
    try:
        main()
    except KeyboardInterrupt:
        if ser != None:
            ser.close()

  • 3
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值