树莓派3与PC机通信

一、前言

       在写这篇博客之前,网上已经有很多关于树莓派和PC机通信的博客教程,因此这篇博客从技术上讲也算不上原创,只不过是结合自己的使用情况做一个总结,便于以后快速解决同样的问题。

二、过程目录

1.硬件连接

2.恢复硬件串口配置方法

3.编写串口测试代码

4.使用串口调试助手完成测试

三、具体过程

硬件资源:树莓派3、PC机、USB转TTL模块

(一)硬件连接

       将树莓派的GPIO14(TX)和GPIO15(RX)引脚分别和USB转TTL模块上的PB11(RX)和PB10(TX)引脚(原因见下图)进行连接,并用USB线连接PC机和USB转TTL模块。下面第一张图为树莓派3的GPIO引脚图,第二张图为USB转TTL模块图。

 

       在USB转TTL模块中,右边有8个引脚,左边4个和右边4个是完全相同的,只不过为了模块化设计,将这个模块和主控芯片引脚断开,必要时只需要用跳线帽进行连接即可。红色跳线帽共地,蓝色跳线帽共5V,和树莓派GPIO口连接的杜邦线需要连接PB10和PB11对应的左边的引脚。

(二)恢复硬件串口的配置方法

1.下载pi3-miniuart-bt-overlay文件,然后在Terminal终端进入文件存放目录,执行以下命令将文件解压到目录 /boot/overlays/ 下。

sudo unzip pi3-miniuart-bt-overlay.zip -d /boot/overlays/

2.使用以下命令编辑 /boot 目录下的config.txt文件

sudo nano /boot/config.txt

config.txt文件初始状态如下:

在文本末尾加上如下一行代码:

dtoverlay=pi3-miniuart-bt

按下Ctrl+O组合键,再按下Enter键进行保存操作,最后按下Ctr+X组合键返回终端窗口。

3.输入以下命令编辑 /boot 目录下的cmdline.txt文件

sudo nano /boot/cmdline.txt

删除 console=serial1,115200

       删除前可先进行备份,按下Ctrl+6开始标记,按下方向键可以标记多个,被标记的内容会反白,再次按下Alt+6完成复制,按下Ctrl+U完成粘贴操作;在一行代码前添加 # 符号可以注释掉该行代码。效果如下:

       保存后返回到终端窗口初始界面。

4.更新配置并重启

       依次输入以下命令进行配置更新:

sudo apt-get update
sudo apt-get upgrade
sudo reboot

5.查看修改后的映射关系

       输入以下命令查看当前映射关系:

ls -l /dev

修改后的映射关系如图:

6.在树莓派命令窗口中分别通过如下两个命令停止和禁用串口的控制台功能

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

7.重启树莓派

sudo reboot

(三)串口测试代码

       使用Python语言在Python图形化界面软件Geany中编写以下代码(一个回显程序),并保存为Uart_test.py。

# -*- coding: utf-8 -*
import serial
import time
#open the serial
ser = serial.Serial("/dev/ttyAMA0",115200)
def main():
  while True:
     #get Buffered character
     count = ser.inWaiting();
     if count !=0:
       #read content and show return 
       recv = ser.read(count)
       ser.write(recv)
     #clear Buffer
     ser.flushInput()
     time.sleep(0.1)

if __name__ == '__main__':
    try:
        main()
    except KeyboardInterrupt:
        if ser != None:
            ser.close() 

       在终端窗口进入程序保存目录,输入以下命令执行测试程序。

python Uart_test.py

(四)使用串口调试助手完成测试

       在PC端打开串口调试助手,在能搜索到串口的前提条件下,将波特率调整为115200,打开串口,发送数据,观察接收窗口是否可以接收到发送的数据。

 

参考博客:

1.pi3-miniuart-bt-overlay

2.树莓派3b和电脑串口互相通信进行数据传输的配置过程

3.浅尝树莓派3之串口配置

4.树莓派3串口(UART)使用问题的解决方法!!!!

5.树莓派串口(UART)编程Python示例

  • 4
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
树莓派和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 ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值