树莓派4B与STM32串口通信

目录

2上篇文章的补充

[2.1 树莓派通信设置](#2.1 树莓派通信设置)

3树莓派与STM32通信

3.1接线准备

3.2代码

[3.2.1 STM32代码:](#3.2.1 STM32代码:)

3.2.2树莓派代码:


2上篇文章的补充

2.1 树莓派通信设置

在上篇文章的基础上,进一步的设置

复制代码
终端输入:sudo minicom -s

找到 Serial port setup

为了避免数据传输时出现混乱,需要将下位机的串口设置与PC上的串口调试助手的设置保持一致,包括波特率、校验位等参数的调整。特别是在低波特率下进行数据传输时,受到的干扰相对较小,因此需要特别注意。同时,硬件流控制(F)与软件流控制(G)也需要调整为NO,以确保数据传输的稳定性和正确性。++按照下图的方式修改++

修改完后回车保存即可

3树莓派与STM32通信

3.1接线准备

树莓派引脚图:

++树莓派的TXD接STM32的RXD即PA10,树莓派的RXD接STM32的TXD即PA9++

++同时别忘了:树莓派和STM32要共地!共地!共地!!!!++

3.2代码

3.2.1 STM32代码:

STM32代码只用于发送1、2、3、4.树莓派接收后作出反应

复制代码
        USART_SendData(USART1, '1');
        
        // ??????
        while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET);
        
        // ??10?
        delay_ms(1000);
		        
		USART_SendData(USART1, '2');
		while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET);
        delay_ms(1000);
        USART_SendData(USART1, '3');
		while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET);
		delay_ms(1000);
		USART_SendData(USART1, '4');
		while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET);
        delay_ms(1000);
3.2.2树莓派代码:

具体功能:一个垃圾分类识别的程序,主要功能是读取一个视频文件并播放,同时通过串口读取传感器发送的数据来实时统计不同类型垃圾的数量,并在视频播放窗口的右上角显示垃圾分类数量信息和摄像头实时画面。

部分代码:

复制代码
mport cv2
import numpy as np
import serial

指定要播放的视频文件路径
video_path = '/home/pi/Videos/wx.mp4'

创建视频捕捉对象
cap_video = cv2.VideoCapture(video_path)

创建摄像头捕捉对象
cap_camera = cv2.VideoCapture(0)

检查是否成功打开视频文件和摄像头
if not cap_video.isOpened() or not cap_camera.isOpened():
print("无法打开视频文件和摄像头!")
exit()
# 将垃圾分类数量信息的图像复制到当前帧的右上角,作为背景
display_image = frame_video.copy()
display_image[display_ypos:display_ypos+garbage_info_frame.shape[0], display_xpos:display_xpos+garbage_info_frame.shape[1]] = 255
cv2.rectangle(display_image, (display_xpos, display_ypos), (display_xpos+garbage_info_frame.shape[1], display_ypos+garbage_info_frame.shape[0]), (255, 255, 255), -1)
if garbage_type_text:

视频效果:

树莓派与STM32串口实验

上篇文章:树莓派4B串口通信配置方式-CSDN博客

++需要完整代码的:请关注、点赞、收藏,评论区留下邮箱++

相关推荐
逐步前行3 分钟前
嵌入式图形库-LVGL v9.6-基础概念
单片机·嵌入式硬件
新晨单片机设计10 分钟前
S025F-STM32蓝牙智能手环(心率、血氧、体温、计步)【Proteus仿真+Keil程序+原理图】
stm32·嵌入式硬件·proteus·蓝牙智能手环
coward9128 分钟前
全志和瑞芯微平台反编译设备树
linux·嵌入式硬件
潜创微科技1 小时前
CH591:成本优化的青稞 RISC-V 无线 MCU
c语言·单片机·risc-v·低延迟·沁恒·青稞
深圳海导科技1 小时前
深圳海导科技navynav|小型RTK数传电台:高精度定位场景下的枢纽
单片机·嵌入式硬件
番茄灭世神2 小时前
PN学堂GD32课程第15篇——HardFault异常
c语言·单片机·嵌入式
创界工坊工作室2 小时前
49-基于单片机的火警报警器设计
stm32·单片机·嵌入式硬件·51单片机·proteus
笨笨饿2 小时前
144_Codex变慢的解决办法
stm32·单片机·嵌入式硬件·mcu·物联网·51单片机·proteus
学linux的QQ蛋2 小时前
IMX6 嵌入式多传感器系统整体架构梳理
linux·嵌入式硬件·架构
zhaoshuzhaoshu2 小时前
什么是信号量?信号量的种类、使用方法与 STM32 案例
嵌入式硬件