树莓派4B串口通信

本文详细介绍了如何在树莓派4B上配置串口通信,包括修改配置文件以启用额外的硬件串口,以及通过示例代码进行串口测试。步骤包括修改cmdline.txt和config.txt文件,以及串口与GPIO引脚的对应关系。测试代码展示了如何使用wiringSerial库进行串口通信,并验证通信稳定性。
摘要由CSDN通过智能技术生成

树莓派4B串口通信

需要了解的一些知识

树莓派3B的时候,一共有两个串口。

硬件串口:/dev/ttyAMA0 mini串口:/dev/ttyS0 硬件串口有独立的时钟源,通信稳定,但默认分配成了蓝牙功能。可以通过禁用蓝牙等操作来使用这个串口。

而mini串口的时钟源由cpu提供,会随主频的变化而变化,通信不稳定,但可以通过固定CPU主频来稳定通信。

为追求稳定的串口通信,树莓派3需要经过非常复杂的操作才得以实现。

树莓派4B配置第一步

初次使用树莓派串口编程,需要配置,将串口改用成通信。把这个用作调试端口的串口修改为能够通信的串口。

/* 修改 cmdline.txt文件 */
>cd /boot/
>sudo vim cmdline.txt
删除【】之间的部分
dwc_otg.lpm_enable=0 【console=ttyAMA0,115200】 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

 然后 sudo reboot

树莓派4B配置第二步

树莓派4B增加了四个硬件串口,但需要修改配置来打开。(用硬件串口会比较好)

sudo nano /boot/config.txt

追加以下内容到末尾:

dtoverlay=uart2 ​

dtoverlay=uart3 ​

dtoverlay=uart4 ​

dtoverlay=uart5

大概就是以下内容:

然后CTRL+O保存,然后回车,最后CTRL+X退出。

修改完这个配置文件然后重启树莓派:sudo reboot

查看硬件串口是否可用

ls /dev/ttyA*

 

串口与GPIO的对应关系

建议使用除ttyAMA0之外的串口

GPIO14 = TXD0 -> ttyAMA0

GPIO0 = TXD2 -> ttyAMA1

GPIO4 = TXD3 -> ttyAMA2

GPIO8 = TXD4 -> ttyAMA3

GPIO12 = TXD5 -> ttyAMA4

GPIO15 = RXD0 -> ttyAMA0

GPIO1 = RXD2 -> ttyAMA1

GPIO5 = RXD3 -> ttyAMA2

GPIO9 = RXD4 -> ttyAMA3

GPIO13 = RXD5 -> ttyAMA4

树莓派4GPIO引脚图

测试代码

#include <wiringSerial.h>
#include <wiringPi.h>
#include <stdio.h>
​
int main()
{
        wiringPiSetup();
        int fd;
        int cmd=0;
        int data=0;
        fd=serialOpen("/dev/ttyAMA1",9600);
        while(1)
        {
                while(serialDataAvail(fd) != -1 )
                {
                        serialPuts(fd,"jinru\r\n");
                         cmd=serialGetchar(fd);
                        printf("%d\n",cmd);
                        perror("why");
                }
                serialFlush(fd);
        }
​
​
        return 0;
}

注意:这里使用的是AMA1GPIO1 = RXD2 -> ttyAMA1,GPIO0 = TXD2 -> ttyAMA1,注意硬件接线,串口波特率设置为9600树莓派要和ch340共地。串口发送’7‘给树莓派(验证树莓派的RXD),树莓派接收到数据,先打印“jinru”(验证树莓派的TXD),然后再打印这个数据。

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Aurora Smith

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值