MENU

实现树莓派的串口通信

August 13, 2020 • Read: 114 • 笔记

  • 材料

    1. 树莓派4
    2. win 10
    3. minicom串口助手测试

1.打通树莓派的串口通讯

1.外设IO口定义说明

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

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

在开始前说明以下几点:

  1. 树莓派UART端口的位置:TXD位于HEAD-8;RXD位于HEAD-10;GND位于HEAD-6(可选其他GND,14也可)。
  2. 树莓派的TXD应接USB转串口设备的RXD,当然如果测试失败请交换RXD和TXD的顺序。

image-20200813150449021

image-20200813150508625

2.修改串口映射

  • serial配置

输入命令$ ls /dev -al查看默认的串口分配方式,如下图所示

image-20200813150805190

由于硬件串口分配给板载蓝牙使用,所以要释放掉,并设置硬件串口分配给GPIO串口

首先登陆终端后,输入sudo raspi-config命令进入树莓派的系统配置界面,选择第五个选项

image-20200813151014333

接着进入p6 Serial,如下图所示

image-20200813151120464

选择关闭串口登陆功能,打开硬件串口调试功能

image-20200813151211605

image-20200813151238559

完成后出现下图的提示界面,即为OK

image-20200813151312912

serial0                  GPIO
serial1                  蓝牙模块

3.设置硬件串口为GPIO串口

接着将串口配置为GPIO串口

输入$ sudo vim /boot/config.txt命令

进入vim编辑

dtoverlay=pi3-miniuart-bt

force_turbo=1

写入到最后,如下图

image-20200813152200492

保存后退出vim

重启树莓派,输入ls /dev -al,可以发现此时两个串口已经互相换了位置,如下图

image-20200813152721103

4.禁用控制台功能

$ sudo systemctl stop serial-getty@ttyAMA0.service

$ sudo systemctl disable serial-getty@ttyAMA0.service

5.查看波特率

$ sudo stty -F /dev/ttyAMA0

image-20200813153639268

波特率需要是9600,假如不是9600就要修改

6.修改波特率

$ sudo vim /boot/cmdline.txt

删除console=serial0,115200字段

重启树莓派,再次查看波特率

上面所有配置完成之后,可以使用树莓派与其他硬件进行串口通信了。

2.利用minicom串口助手测试

在树莓派上安装配置minicom

  • 安装minicom

输入sudo apt-get install minicom安装

  • 配置minicom

输入sudo minicom -s选择第三个Serial port setup

image-20200813161016652

进入配置界面之后

将输入ASerial Device中的端口修改成/dev/ttyAMA0

同样输入E 按照提示选择9600

配置完如下图所示:

image-20200813161353732

敲下回车确认,并选择Save setup as dfl将配置改为minicom的默认配置

出现下图则为配置成功:

image-20200813161509554

最后选择Exit from minicom退出minicom

在pc端下载SSCOM串口调试助手

将树莓派的IO口通过USB转TTL模块接到PC端上,打开串口调试助手

image-20200813161716331

选择端口,我这是COM5,然后将波特率调整为9600

image-20200813161817487

最后选中端口,打开串口

image-20200813161855846

image-20200813161910441

测试

测试一:

在PC端输入值并点击发送,

image-20200813162051762

可以看到在树莓派上接收到了相应的字符串

image-20200813162118812

测试二:

在树莓派界面随意敲下字符,

可以从PC端的串口调试工具中看到每个输入的字符,以单个字符的形式接收。

image-20200813162310160

3.最后

到这里已经实现了树莓派的串口通讯,但是这种方法仅是测试用,要实现硬件通讯抛开PC端和PC外设的控制处理,这就要等之后利用python去实现,这方面的等之后再讲。

Archives Tip
QR Code for this page
Tipping QR Code