树莓派4b串口通信配置

树莓派4b串口通信配置树莓派4b本身是两个串口,运行ls/dev-al如下:请注意:在默认状态下,serial0(就是GPIO14,15)是映射到ttyS0的(就是MINI串口:/dev/ttyS0),ttyS0的特点是其工作时钟来自于CPU,CPU的时钟呢又是从600MHZ到1.5Ghz动态变化的,所以这个串口经常会因为时钟频率发生变化而发生错误,因此我们不用这个串口。默认状态下,serial1(跟板载蓝牙…

大家好,又见面了,我是你们的朋友全栈君。

树莓派4b本身是两个串口,运行ls /dev -al如下:
在这里插入图片描述
请注意:在默认状态下,serial0(就是GPIO14,15)是映射到ttyS0的(就是MINI串口:/dev/ttyS0),ttyS0的特点是其工作时钟来自于CPU,CPU的时钟呢又是从600MHZ到1.5Ghz动态变化的,所以这个串口经常会因为时钟频率发生变化而发生错误,因此我们不用这个串口。

默认状态下,serial1(跟板载蓝牙相连)映射到ttyAMA0,ttyAMA0是硬件串口,它的时钟频不受CPU影响。因此我们一般都是用的ttyAMA0。

所以我们的第一步就是配置交换映射关系,最终的映射结果如上图我们要把硬件串口ttyAMA0映射到GPIO14,15上

第一步:命令行输入:sudo raspi-config,选择第五个选项

在这里插入图片描述
在这里插入图片描述
选中P6敲回车进入,然后会问你是否关闭serial login ,我们选关闭,接下来就会问你是否打开串口调试,我们选打开:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
**第二步:**在boot目录下找到config.txt文件,在最后添加一行内容如下:
在这里插入图片描述
红框中的内容就是我们添加的内容,请注意:树莓派4b也是写pi3
自此,交换映射完成,如果没有错误的话映射关系就是本博客第一幅图那样了。

第三步:测试
先把树莓派上装一个软件,这个软件跟我们常用的串口调试助手是一类的

sudo apt-get install minicom

完毕之后输入:

minicom -D /dev/ttyAMA0 -b 9600

9600是指定了9600波特率,ttyAMA0 是指定该软件使用硬件串口。默认数据8位,停止位1位
把STM32上烧录上一个串口发送的程序,波特率也设置为9600,把树莓派的TX0接到STM32的RX,树莓派的RX0接到STM32的TX。然后把两个设备的GND连起来(学过电路分析的话应该还是知道这个知识点的)。接下来就可以让STM32发送了。

下图红框中的就是STM32发送的字符串
在这里插入图片描述
如果要退出这个minicom软件的话,先按CTRL+A再按Z就会弹出菜单,按下0回车就退出了,然后就能直接关闭了。

注:改config.txt文件的时候要root权限的,我是用root账户登录了,然后右键点击属性直接把修改权限给改了。

注:由于我没有232转TTL电平的转换器,我是直接使用了STM32用杜邦线把uart接到树莓派的GPIO串口上了,如果是有转换器的话可以直接把树莓派跟电脑接起来,在电脑上用串口调试助手发送数据

附录:树莓派4b的GPIO分布:
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/137530.html原文链接:https://javaforall.net

(0)
上一篇 2022年6月1日 下午8:46
下一篇 2022年6月1日 下午8:46


相关推荐

  • java 简单分页原理

    java 简单分页原理java 简单分页原理

    2022年4月23日
    73
  • MATLAB能进行拉氏变换吗,matlab拉氏反变换

    MATLAB能进行拉氏变换吗,matlab拉氏反变换2 3 拉氏变换和拉氏反变换的定义 2 4 典型时间函数的拉氏变换 2 5 拉氏变换的性质 2 6 拉氏反变换的数学方法 2 7 用拉氏变换解 实验八拉氏正反变换与零极点分析一 实验目的 1 掌握利用部分分式展开的方法求解拉普拉斯逆变换 并能利用 MATLAB 实现 2 掌握利用 MATLAB 计算拉氏正反变换 尤其对于信号的分析起到了直观而形

    2026年3月26日
    2
  • 数据仓库ods层设计_数据仓库建模的流程有几个

    数据仓库ods层设计_数据仓库建模的流程有几个当我们的数据采集到hdfs层上之后,我们就开开始对数据进行建模以便后来分析,那么我们整体的架构先放在每个建模层级的最前面所以项目1的将行为数据和业务数据导入到hdfs中我们已经完成了,现在需要的是将hdfs的数据通过ODS层数据建模,初步的分析以及改变,那么我们首先介绍下ODS层的作用因为我们的数据刚落到hdfs上,他还只是单纯的数据,并没有能让我们直接操作。所以我们需要将这些数据放入到能够对数据进行操作的框架中,如我们这个项目采取了使用hive的方法。所以我们此次在ODS层需要做到的就是将hdfs

    2026年4月16日
    5
  • Python3之urllib库的使用总结

    Python3之urllib库的使用总结Urllib 库是 Python 中的一个功能强大 用于操作 URL 并在做爬虫的时候经常要用到的库 在 Python2 x 中 分为 Urllib 库和 Urllin2 库 Python3 x 之后都合并到 Urllib 库中 使用方法稍有不同 本文介绍的是 Python3 中的 urllib 库 什么是 Urllib 库 Urllib 是 Python 提供的一个用于操作 URL 的模块 我们爬取网页的时候 经常需要用到这个库 升级合并后 模块

    2026年3月18日
    1
  • Response.Flush()的用处

    Response.Flush()的用处Response.Flush()的作用是将缓冲信息输出到页面。比如我们在点击一个按钮后,执行多个任务,每个任务执行成功后都有一个Response.Write(‘成功信息’)。如果我们在Respons

    2022年7月2日
    26
  • encode和decode的区别 java_inputstream读取文件

    encode和decode的区别 java_inputstream读取文件encode()和decode()decode英文意思是解码,encode英文原意编码字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符串解码(decode)成unicode,再从unicode编码(encode)成另一种编码。decode的作用是将其他编码的字符串转换成unicode编码,如str1.d…

    2026年4月16日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号