树莓派4B的串口使用,并通过串口与其他设备经过通讯协议发送、接收数据。

本文介绍如何在树莓派中交换硬件串口与mini串口的映射关系,禁用默认的控制台功能,并通过C语言、Python语言及minicom工具进行串口通讯功能的测试。

从树莓派的相关资料我们可以看到,树莓派有两个串口可以使用,一个是硬件串口(/dev/ttyAMA0),另一个是mini串口(/dev/ttyS0)。硬件串口有单独的波特率时钟源,性能好,稳定性强;mini串口功能简单,稳定性较差,波特率由CPU内核时钟提供,受内核时钟影响。

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

因为树莓派初始时默认把性能较差的mini串口分配给GPIO上的TX、RX。我们要使用性能好的串口就需要把两者交换过来。以下是交换的步骤:

  • 1.运行命令,查看串口分配情况
ls /dev -al

在这里插入图片描述

  • 2.由于硬件串口分配给板载蓝牙使用,所以要释放掉,并设置硬件串口分配给GPIO串口。
    首先登陆终端后,输入sudo raspi-config命令进入树莓派系统配置界面,选择第五个Interfacing Options:
    在这里插入图片描述
    在这里插入图片描述
  • 3.选择关闭串口登录功能,打开硬件串口调试功能:在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    1. 设置硬件串口为GPIO串口
      接着将串口配置为我们的GPIO串口,对输入命令
sudo vim /boot/config.txt
  • 5.将下面两行代码添加到最后:
dtoverlay=miniuart-bt
force_turbo=1

  • 6.树莓派重启,再次输出:
ls /dev -al

可以看到;两个串口互换了位置:
在这里插入图片描述

  • 7 禁用串口的控制台功能
    前面步骤已经交换了硬件串口与mini串口的映射关系,但是,现在还不能使用树莓派串口模块与电脑进行通信,因为,树莓派gpio口引出串口默认是用来做控制台使用的,即是为了用串口控制树莓派,而不是通信。所以我们要禁用此默认设置。

首先执行命令如下:

sudo systemctl stop serial-getty@ttyAMA0.service
sudo systemctl disable serial-getty@ttyAMA0.service

然后执行命令:

sudo nano /boot/cmdline.txt
并删除语句console=serial0,115200(没有的话就不需要此步骤)

删除语句:(没有的话就不需要此步骤)

console=serial0,115200
  • 8 测试与验证串口通讯功能
    这里使用三种方式进行测试验证, c语言下使用wiringPi库, python语言下使用serial包,最后命令行使用minicom工具。

先安装以上开发工具:

sudo apt-get install wiringpi
sudo apt-
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值