树莓派学习笔记6-串口通讯(废弃)

树莓派串口通讯

前言

由于需要使用树莓派与stm32进行通讯,因此记录一下树莓派与stm32的串口通讯过程。
树莓派一共有两个串口把玩,一个是稳定的硬件串口,一个是mini串口,受内部原因影响,mini串口的速率并不稳定,因此一般情况下使用的都是硬件串口,但是在树莓派3以后(不知道有没有记错),官方将原本的硬件串口分配给了板载的蓝牙,所以在使用串口前不得不对树莓派做一些配置。
步骤如下:
1、打开第二个串口
2、交换两个串口的映射关系
3、代码编写

打开ttyAMA0

在终端输入sudo ls -la /dev/
可以看到默认情树莓派学习笔记6-串口通讯(废弃)_第1张图片
况下只有一个串口在使用。
输入以下命令进行配置

sudo raspi-config

选择Interface
树莓派学习笔记6-串口通讯(废弃)_第2张图片
选择Serial
树莓派学习笔记6-串口通讯(废弃)_第3张图片
后面的Yes即可,提示重启则重启树莓派,没有的话手动重启一下,之后就可以看到如下两个串口都已经打开。
树莓派学习笔记6-串口通讯(废弃)_第4张图片

交换映射

使用如下命令进入修改文件

sudo nano /boot/config.txt

//在最后添加以下语句
dtoverlay=pi3-miniuart-bt

随后查看可以发现两个串口的顺序交换了。
在终端执行以下命令

sudo systemctl stop serial-getty@ttyS0.service
sudo systemctl disable serial-getty@ttyS0.service
sudo nano /boot/cmdline.txt

随后使用以下代码替换原先的cmdline文件

console=tty1 root=PARTUUID=ea7d04d6-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles

至此,基本配置完成。

代码编写

由于使用串口需要root权限,所以我们在使用IDE进行编写时需要修改一下执行命令,在前面添加上sudo,如图
树莓派学习笔记6-串口通讯(废弃)_第5张图片
最后打开PC端的串口助手进行连接树莓派(顺序标号法的8【TX】、10【RX】号引脚)。
输入以下代码进行测试

#include "wiringPi.h"
#include "wiringSerial.h"

int main()
{
	int ser;
	//开启wiringPi
	wiringPiSetup();
	//设置串口及波特率
    ser = serialOpen("/dev/ttyAMA0", 115200);
    //发送字符串
    serialPrintf(ser, "hello I am Pi\n");
	//释放资源
    serialClose(ser);

    return 0;
}

从PC端的串口助手可以观察到如下现象
树莓派学习笔记6-串口通讯(废弃)_第6张图片

结尾

至此,树莓派串口基础使用完成。

参考自
大佬博客1

大佬博客2

你可能感兴趣的:(树莓派,单片机,stm32,物联网)