1.树莓派串口控制台功能

在2018-10-09-raspbian-stretch.img镜像中,要使用串口来调试设备,需要修改conig.txt文件。

1. sudo systemctl disable hciuart 禁用蓝牙设备

2.sudo nano /boot/config.txt

在该最后加上一行

dtoverlay=pi3-miniuart-bt

3.sudo raspi-config,将系统启动设置为串口自动登录 启动方式

4.sudo reboot 即可使用串口了

树莓派3B+的硬件电路图如下:

我们将串口模块的TX、RX、GND连接到树莓派的UART0 RX、UART0 TX、GND,电源不用接,即可使用串口进行控制

2.如何让树莓派与其他设备使用串口进行通信呢?

配置这个功能可以让我们的树莓派与其他设备例如stm32进行数据的交互和通信,实现两者之间的互相控制功能,这个还是非常实用的!

使用以下步骤即可:

树莓派包含两个串口

1.硬件串口(/dev/ttyAMA0),硬件串口由硬件实现,有单独的波特率时钟源,性能高,可靠。一般优先选择这个使用。

2.mini串口(/dev/ttyS0),mini串口时钟源是由CPU内核时钟提供,波特率受到内核时钟的影响,不稳定。

想要通过树莓派的GPIO引脚进行稳定的串口通信,需要修改串口的映射关系。

serial0是GPIO引脚对应的串口,serial1是蓝牙对应的串口,可以使用 ls -l /dev/serial*  查看当前的映射关系

1.sudo raspi-config

Interfacing Options -> P6 Serial, 第一个选项(would you like a login shell to be accessible  over serial?)选择NO,第二个选项(would you like the serial port hardware to be enabled?)选择 YES

然后我们可以通过使用ls -l /dev/serial* 查看串口映射关系发现

serial0(GPIO串口)默认使用的是ttyS0(mini串口),serial1(蓝牙)使用的是ttyAMA0(硬件串口)

如果想使用稳定可靠的硬件串口,就要将树莓派3的硬件串口与mini串口默认映射对换。而这个需求官方也考虑到了,在系统中放了一个实现这个功能的文件---stretch版本系统中的文件为/boot/overlays/pi3-miniuart-bt.dtbo。使用该文件发挥功能只需在/boot/config.txt文件末尾添加一行代码
sudo nano /boot/config.txt

在文件最后面添加一行:dtoverlay=pi3-miniuart-bt

修改完成后 sudo reboot 重启树莓派后使用 ls -l /dev/serial* 查看映射如下:

如上图所示,serial0(GPIO串口)使用的是ttyAMA0(硬件串口),而serial1(蓝牙)使用的是ttys0(mini串口)

2.禁用串口的控制台功能

前面步骤已经交换了硬件串口与mini串口的映射关系,但是,现在还不能使用树莓派串口模块与电脑进行通信,因为,树莓派io口引出串口默认是用来做控制台使用的,即是为了用串口控制树莓派,而不是通信。所以我们要禁用此默认设置。

首先执行命令如下:

sudo systemctl stop serial-getty@ttyAMA0.service
sudo systemctl disable serial-getty@ttyAMA0.service

然后执行命令行:

sudo nano /boot/cmdline.txt

删除语句 console=serial0,115200  (没有的话就不需要此步骤)

保存之后其内容如下:

接下来再次重启树莓派即可。

最终的/boot/config.txt文件内容如下:

3.测试验证串口功能

代码如下:

#include <stdio.h>
#include <wiringPi.h>
#include <wiringSerial.h>int main()
{int fd;if(wiringPiSetup()<0) {return 1;}if((fd=serialOpen("/dev/ttyAMA0",115200))<0) {return 1;}printf("serial test start ...\n");serialPrintf(fd,"hello world!!\n");serialClose(fd);return 0;
}

编译命令:

gcc test.c -o test -lwiringPi

代码中使用到wiringPi库,具体该库的下载和使用可以参考官网:http://wiringpi.com/,里面描述了如何使用该库,这里不做介绍

执行:./test

我们可以将串口模块通过杜邦线插到树莓派的UART0 TX RX接入到PC机,在PC机上打开串口调试助手查看 执行上面命令后会打印 hello world 的字符串,说明通信成功。

同理,我们可以在树莓派上安装minicom,配置好 /dev/ttyAMA0 后在串口调试助手上发送字符串,树莓派minicom串口也能收到对应的字符串,说明两者通信成功

树莓派3B+ 串口使用大全(实现串口通信功能)相关推荐

  1. 树莓派3B 开启串口

    网上的很多方法,都很麻烦,要下文件还要改很多参数,但是经我测试,其实没那么多步骤!(不知道是不是我的树莓派版本高的原因) 通过 cat /proc/version命令得到的版本是 linux vers ...

  2. 树莓派3B+使用GPIO实现串口通信

    文章目录 介绍 方案介绍 串口配置的各种坑 配置步骤 启用串口ttyS0 关闭Console 测试 连线 编辑文件 运行代码 ttyS0串口权限 参考文献 介绍   由于项目原因需要使用树莓派连接串口 ...

  3. 单片机串口控制树莓派3B播放HDMI视频,omxplayer,

    使用树莓派3B通过HDMI播放视频.并且使用串口去控制播放哪个视频. 1. 问题解耦 单片机串口控制树莓派3B播放视频? = 树莓派播放视频 + 单片机串口传参控制树莓派 树莓派播放视频:树莓派播放视 ...

  4. 树莓派3b接收USB串口数据并解析处理

    通过树莓派3b使用wiringPi接收串口数据,并对帧头帧尾进行判断,解析出符合帧协议的数据. 1. 帧头.帧尾.帧长度定义 我们在这里定义串口数据的帧头为 0x3A 0x3B,帧尾为 0x7E 0x ...

  5. 树莓派4bpython串口通信解读数据_树莓派基础实验36:通用串口通信实验

    一.介绍 对于树莓派 3B+来说,他的UART功能有三种: 1.内部蓝牙使用: 2.控制终端使用: 3.与其他设备进行串口通信. 在树莓派基础实验35:USB TO TTL模块实验中学习了通过串口对树 ...

  6. 树莓派3b+串口配置

    前言 树莓派从大的方向来说一共出了3代,每一代的CPU外设基本相同,但内核不同,外设里面一共包含两个串口,一个称之为硬件串口(/dev/ttyAMA0),一个称之为mini串口(/dev/ttyS0) ...

  7. 树莓派3B+:串口通讯

    树莓派3B+:串口通讯 背景 一.树莓派串口通讯是什么? 二.使用步骤 1.树莓派串口知识 2.查看当前的串口使用及映射关系 3.释放串口ttyAMA0 3.代码控制串口,验证是否可用 三.minic ...

  8. 树莓派3B+ubuntu系统串口调试

    零. 介绍 树莓派有2个串口:硬件串口(/dev/ttyAMA0)和mini串口(/dev/ttyS0) **PL011 UART(硬件串口):**有单独的波特率时钟源,性能高.可靠 **mini U ...

  9. 树莓派3B+(无显示器)实现串口登录

    树莓派3B+(无显示器)实现串口登录 a.树莓派3B一台 b.笔记本电脑一台 c.电源线.(电源适配器官方说明为5V 2.5A,而使用USB转TTL转换器,供电时只有5V 1A) d.内存卡.读卡器一 ...

最新文章

  1. 加州理工华人博士提出傅里叶神经算子,偏微分方程提速1000倍,告别超算!
  2. Linux挂载iscsi存储
  3. Java快速教程--vamei 学习笔记(基础篇)
  4. 【人工智能】人工智能的发展历程
  5. DL框架之PyTorch:深度学习框架PyTorch的简介、安装、使用方法之详细攻略
  6. 模块计算机型x86yu,ldd3学习之九:与硬件通信
  7. 国外流行十大PHP框架
  8. 解决:Failed to execute goal on project aopcore: Could not resolve dependencies for project com.cmos:
  9. 三星5G手机全球销量200万台:年底将翻番
  10. FFmpeg源代码简单分析:makefile
  11. 【Java基础-Java运算符】
  12. DEV-c++中sort的用法
  13. word中的总页数不包括封面、目录
  14. NDP和LLDP协议
  15. linux无字幕打开文件,解决SMPLAYER无画面/无字幕
  16. wps for linux显示系统缺失字体解决办法
  17. To B产品用研工作,到底在研究什么?
  18. Vite-babysitter 像月嫂?保姆?照顾孩子一般为你讲解Vite源码。
  19. You are asking Spring Security to ignore Ant(xx) This is not recommended, please use permitAll... 处理
  20. 为何别人实操很强?因为他用这70个Python项目学习练手!它值得你收藏落灰!

热门文章

  1. 集团信息化之路—电子采购软件与现有库存及财务软件数据对接的探讨
  2. Dennis Ritchie—— Unix之父, C 编程语言设计者
  3. 炸房”网游外挂的刑事责任辨析
  4. 手把手教你了解Asp.net web窗体
  5. 博后招募 | 新加坡科技与设计大学段凌杰教授招收人工智能方向博士后
  6. pythonelse用法_Python中else关键字的常见用法
  7. 官宣!Mybatis-Plus 官方神器发布!!!
  8. iOS开发——27个开源库,让你的开发坐上火箭吧
  9. 2020年车工(中级)考试及车工(中级)考试试卷
  10. GNS3----cisco路由器NAT配置