树莓派串口通信

Posted 谏书稀

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了树莓派串口通信相关的知识,希望对你有一定的参考价值。

文章目录

一、树莓派串口介绍

  • 树莓派4B一共包含两个串口,一个是硬件串口(/dev/ttyAMA0),一个是mini串口(/dev/ttyS0)。
  • 硬件串口因为使用其单独的时钟源,性能高,稳定可靠,成为使用较为广泛的串口;
  • 另一个mini串口性能低,功能简单,但是没有单独的时钟源,会受到内部时钟的影响,树莓派本身运行linux系统,由CPU内核时钟提供时钟源会造成卡顿等致命错误。
  • 本文使用硬件串口。

二、串口通信配置

1.打开USART串口

  • 终端输入
sudo raspi-config
  • 选择Interface Options后回车
  • 选择Serial Port后回车
  • 第一个选项(would you like a login shell to be accessible over serial?)选择NO;
    第二个选项(would you like the serial port hardware to be enabled?)选择 YES。

2.串口映射配置

  • 查看串口映射
ls -l /dev/serial*


serial0(GPIO串口)默认使用的是ttyS0(mini串口);
serial1(蓝牙)使用的是ttyAMA0(硬件串口)
如果想使用稳定可靠的硬件串口,就要将树莓派的硬件串口与mini串口默认映射对换。而这个需求官方也考虑到了,在系统中放了一个实现这个功能的文件—stretch版本系统中的文件为/boot/overlays/pi3-miniuart-bt.dtbo。

  • 默认映射对换
sudo nano /boot/config.txt

在改文件末尾加上
dtoverlay=pi3-miniuart-bt
force_turbo=1
然后ctrl+o进行写入,不修改文件名称,直接回车即可完成写入,最后ctrl+x退出该文件

  • 查看修改后的串口映射

3.安装mini串口调试助手

  • 输入以下指令安装mini串口调试助手
sudo apt-get install minicom 
  • 输入以下指令打开串口调试助手
minicom -D /dev/ttyAMA0 -b 9600

这里 -D /dev/ttyAMA0 就是指向我们打开的串口端口号,和COM1这种是一样的, -b 9600是配置波特率,这一项我们在minicom中输入 Ctrl+A 在下方也是可以看到我们的波特率的,如果不设置 -b ,波特率默认会是115200。

4. 解决打开ttyAMA0 时没有权限

sudo chmod 777 /dev/ttyUSB0

ttyUSB0 对应提示没有权限的串口,回车后解决

5.解决打开minicom串口助手的时候,键盘失灵

(1)首先在minicom串口中按下Crtl+A,然后单击 Z 进入帮助选项
(2)点击 O 进入Configure Minicom选项
(3)选择Serial port setup选项,按下 F 将 Hardware Flow Contorl 改为No,即禁用硬件流,然后退出。

注意:如果你和我一样,在minicom中连 Crtl+A 都无法显示的话,打开终端,输入

sudo minicom -s

以上是关于树莓派串口通信的主要内容,如果未能解决你的问题,请参考以下文章

树莓派串口通信

树莓派使用uart串口与串口设备通信

树莓派4B 串口通信

36 树莓派串口通信

串口数据交互(树莓派)

Raspberry 4B 串口通信