当前位置:   article > 正文

树莓派串口通信配置_树莓派串口配置

树莓派串口配置

从树莓派的相关资料我们可以看到,树莓派有两个串口可以使用。

  • 硬件串口(/dev/ttyAMA0)
    特点:硬件串口有单独的波特率时钟源,性能好,稳定性强;
  • mini串口(/dev/ttyS0)
    特点:mini串口功能简单,稳定性较差,波特率由CPU内核时钟提供,受内核时钟影响。

当我们需要用串口实现树莓派和stm32或其他开发板的通信,则需要将硬件串口给GPIO使用。但默认的硬件串口是分配给蓝牙模块使用的,而性能较差的mini串口是分配给GPIO串口 TXD0、RXD0。
接下来就是要来解决这个问题。

一、修改raspi-config

  • 首先登陆终端后,输入sudo raspi-config命令进入树莓派系统配置界面,选择第五个Interfacing Options:
    在这里插入图片描述
    这里打开报错的可能是没有安装 raspi-config,具体安装方法可以看下面这篇博客
    如何在ubuntu下安装raspi-config
  • 进来后选择串口 serial
    在这里插入图片描述
  • 这里需要关闭串口登录功能
    在这里插入图片描述
  • 打开硬件调试串口功能
    在这里插入图片描述
    到这里raspi-config的修改就结束了

二、修改config.txt文件

在终端中输入该命令

ls /dev -al
  • 1

找到主串口和辅助串口对应的是mini串口还是硬件串口。大多数还没配置的应该跟我一样是如下的对应关系。
在这里插入图片描述

问题:

首先先得确定config.txt文件在哪?这是一个大坑,在大多数教程中,他们的config.txt文件在 /boot 目录下,但是,我虽然有config.txt,但是我打开后,里面确是一片空白。

解决方法:

树莓派4B中,他的config.txt文件是放在了 /boot/firmware 目录中。
在这里插入图片描述
在这里插入图片描述

  • 对文件进行备份。输入命令:
# 这里备份一个config.txt文件,等下就算改乱了,也可以备份回来
sudo cp config.txt config.txt.bak
  • 1
  • 2
  • 修改config.txt的内容。输入命令:
# 将下面两行代码添加到config.txt文件最后
dtoverlay=pi3-miniuart-bt
force_turbo=1
  • 1
  • 2
  • 3
  • 保存后,通过 sudo reboot 命令重启树莓派
  • 再次输入命令:ls /dev -al
    在这里插入图片描述
    那到这里就算是配置好了这个硬件串口了。

三、树莓派代码编写(c语言实现)

  • 树莓派接线

通过 gpio readall 命令查看gpio口TX和RX的位置。
在这里插入图片描述
我们把USB转TTL的RX接在树莓派的TX上,将USB转TTL的TX接在树莓派的RX上,然后再将他们共地,接线就好了。

  • 实验代码
#include <stdio.h>
#include <wiringPi.h>
#include <wiringSerial.h>
#include <unistd.h> //有这个头文件才能使用sleep函数
  
int main()
{
    int fd;
    int i;
    if(wiringPiSetup()<0) 
    {
        return 1;
    }

	// 这里波特率设为115200,使用的串口是ttyAMA0
    if((fd=serialOpen("/dev/ttyAMA0",115200))<0) 
    {
        return 1;
    }
    //循环打印输入20次
    for(i=0;i<20;i++)
    {
	    printf("serial test output ...\n");
	    serialPrintf(fd,"abcd12345");
	    sleep(1);
	}
    serialClose(fd);
    return 0;
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

将代码写在一个.c文件,然后再用gcc去编译生成可执行文件,关于这部分我这里就不再赘述。还有关于wiringPi库的下载,也请各位去查阅相关资料,这里也不讲解。

  • 输出结果
    在这里插入图片描述

这样关于树莓派与pc端通信的demo就完成了。

还有更多关于串口的玩法还可以学习下这篇博客。里面讲解了如何打开树莓派4B的其他串口,实现树莓派内串口的相互连接通信。

参考博客:

四、结语

感谢你的收看,如果对你有帮助的话,可以点个关注加点赞,希望你们能少走一点弯路。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/893205
推荐阅读
相关标签
  

闽ICP备14008679号