树莓派4B与STM32串口通信

目录

2上篇文章的补充

2.1 树莓派通信设置

3树莓派与STM32通信

3.1接线准备

3.2代码

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博客

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

  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
树莓派STM32之间的数据通信可以通过串口实现。首先,需要完成树莓派的串口配置。然后,将STM32的GPIO引脚进行配置,并将STM32的TX和RX引脚与树莓派的RX和TX引脚用杜邦线连接。接下来,在STM32中烧录好程序,就可以实现双方的通信了。\[1\] 在通信过程中,可以通过按键来发送信号。例如,按下一个按键(STM32发送'0x01'),树莓派接收到该信号后发送'\x01'给STM32,然后STM32接收到'\x01'后控制小车电机转动(发送'0x05')。这样,通过四个按键模拟四种信号(前后左右),每个信号控制一个轮子转动。\[2\] 在具体的实现中,可以使用STM32的GPIO9和10进行USART通信。需要注意的是,STM32程序配置的波特率和树莓派打开minicom串口时的波特率要保持一致。这样,就可以通过MPU6050模块来输出X、Y、Z三轴的数据。\[3\] #### 引用[.reference_title] - *1* *3* [学习笔记一:树莓派STM32的UART通信](https://blog.csdn.net/weixin_41276153/article/details/128037288)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [树莓派STM32(rt1064)串口通信](https://blog.csdn.net/qq_51679917/article/details/130209203)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值