当前位置:首页 > 杂谈 > 正文内容

基于树莓派4B与STM32的UART串口通信实验(代码开源)

2025-04-25 04:05:03杂谈26

前言:本文为手把手教学树莓派4B与 STM32 的 UART 通讯,本次项目采用树莓派4BSTM32 进行串口通讯,将彼此的数据进行互相传输。本篇博客同时提供了基于 YOLOv5-Lite 的目标检测数据联动,即将树莓派4B检测到的信息发送至 STM32,后续可以通过这些信息进行各种需求上的控制。树莓派4BSTM32 的联动是很常见的嵌入式架构体系,通常树莓派4B负责计算量大的任务(例如:目标检测,激光雷达等),STM32 则负责进行控制任务,该架构也是目前主流的智能硬件处理框架!(文末有代码开源!

硬件实物图:

效果图:

一、树莓派4B串口

1.1 树莓派4B的Pin

树莓派4B的引脚图:

1.2 树莓派4B安装Serial与使用

引脚连接:

根据上图树莓派4B的 Pin 引脚图中 GPIO14(TXD) 和 GPIO15(RXD) 的两个引脚分别与 STM32F103C8T6 的 PA10(RXD) 和 PA10(RXD) 的引脚相连(交叉连接)

1.2.1 安装serial

在终端输入:sudo apt-get install serial

1.2.2 打开树莓派4B串口

在终端输入:sudo raspi-config 打开界面设置

Interfacing Options→serial→否→是

1.2.3 修改串口映射关系

在终端输入:sudo nano /boot/config.txt

末行添加 dtoverlay=pi3-miniuart-bit

1.2.4 修改配置文件

在终端输入:sudo nano /boot/cmdline.txt

修改cmdline.txt文件的内容,内容如下:

dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

二、安装minicom与树莓派4B测试

2.1 minicom安装

minicom 是 Linux/树莓派4B 平台串口调试工具,相当于 windows 上的串口调试助手,此时需要先安装 minicom;

如果要退出这个minicom软件的话,先按CTRL+A再按Z就会弹出菜单,按下0回车就退出了,然后就能直接关闭了。

2.2 树莓派4B通信测试

我们使用 XCOM 串口调试助手来测试树莓派4B能否正常进行 UART 通信!

使用USB-TTL模块交叉连接树莓派4B的 UART 的引脚;

三、树莓派4B与STM32通信

STM32 的代码其实就是简单的UART串口通讯代码,但实质上是有很多坑!!!作者发现大部分博主并没有说明出坑所在,这部分作者将会为读者朋友把可能出现的坑给解决掉!

3.1 树莓派4B代码

我们利用 Python 代码写一个循环发送数字的代码程序,具体代码如下:

import serial import time ser = serial.Serial(/dev/ttyAMA0,115200) # 串口初始化,根据实际情况修改串口号和波特率 # 定义要输出的数字 num = 196 while True: ser.write(str(int(num)).encode()) # 发送数字到串口 num += 1 if num > 205: num = 196 time.sleep(0.2) # 等待1秒钟 import serial import time ser = serial.Serial(/dev/ttyAMA0,115200) # 串口初始化,根据实际情况修改串口号和波特率 # 定义要输出的数字 num = 196 while True: ser.write(str(int(num)).encode()) # 发送数字到串口 num += 1 if num > 205: num = 196 time.sleep(0.2) # 等待1秒钟

完整代码可进群免费领取!!!

嵌入式物联网的学习之路非常漫长,不少人因为学习路线不对或者学习内容不够专业而错失高薪offer。不过别担心,我为大家整理了一份150多G的学习资源,基本上涵盖了嵌入式物联网学习的所有内容。点击下方链接,0元领取学习资源,让你的学习之路更加顺畅!记得点赞、关注、收藏、转发哦!

点击这里找小助理0元领取:扫码进群领资料