本次做项目需要树莓派与STM32F4进行串口通信 记录一下过程
需要准备:
树莓派
usb转ttl
杜邦线四根
pc端串口调试助手

1.树莓派串口与TTl连接

先看树莓派引脚图:

树莓派android adb 树莓派4b的引脚图_python

图中可以看到 GPIO14 和 GPIO15 分别为TXD RXD 左上角是两个5V的电源 再往下是接地的引脚再看USB-TTl

树莓派android adb 树莓派4b的引脚图_树莓派android adb_02

从图中可以看到 它有四个引脚 分别是 VDD(电源)、TXD、RXD、GUD(接地)。

接线的方法就是 :

VDD接树莓派的5V电源

GND接树莓派的ground

TXD接树莓派的RXD

RXD接树莓派的TXD

有的USB-TTL有五个引脚比着这个多了个3.3V的电源引脚 接哪个电源看自己心情

接线完成后 我们开始连接pc端的串口调试助手

2.连接串口调试助手

我们将usb插电电脑上 打开usb串口助手 (我这里用的是友善串口调试助手 用什么都行)

树莓派android adb 树莓派4b的引脚图_经验分享_03


如果找不到端口 我们右键此电脑打开设备管理器 看看是不是有个未知设备 如果有的话那就是你的TTL需要安装驱动 可以找卖家要或者百度下载

正常情况下 选择好端口 设置波特率9600 数据位8 校验位 None 停止位1 流控None 然后点击上方的三角开始按钮 左下角会变成绿色字体 表示串口已经打开

树莓派端配置

下面开始配置树莓派
首先要先知道 树莓派一共是有两个端口可用的 一个为/dev/ttyAMA0 /dev/ttyS0 ttyS0是mini串口 ttyAMA0是硬件串口 这里我们用AMA0 因为它比较稳定 但是它被蓝牙占用了 下面我们来配置一下
打开终端 输入

ls -l /dev

看一下输出 你的serial0 指向的是S0还是AMA0 一般情况下默认指向的是S0 我们需要更换一下
终端输入

sudo nano /boot/config.txt

在末尾加上这么一句话

dtoverlay=pi3-miniuart-bt

按Ctrl+O写入 按回车再按Ctrl+X退出

然后输入

sudo raspi-config

打开系统配置界面
依次选择 Inerfacing Options 、serial 、No 、Yes 保存退出
终端输入:

sudo nano /boot/cmdline.txt

把里面的内容替换成

dwc_otg.lpm_enable=0 console=tty1 console=serial0,115200 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait

然后输入

sudo reboot

重启下树莓派
重启完成后我们打开终端输入

ls -l /dev

我们发现serial已经指向ttyAMA0

树莓派android adb 树莓派4b的引脚图_树莓派android adb_04


恭喜!到此树莓派配置完成

如果有什么其他问题可以在评论区留言 我会一一回复

下面我们开始测试!

程序测试

树莓派一般自带pyserial模块这里注意千万不要再去下载一个名为serial的模块是个坑
打开终端输入

sudo chmod 777 /dev/ttyAMA0

回车给下权限要不等会儿会报错
再输入python3 进入到python里面

import serial#导入pyserial模块
ser = serial.Serial('/dev/ttyAMA0',9600)#创建serial对象 并且指定波特率为9600(与调试助手一致)
ser.isOpen()#返回Ture则代表串口已打开
ser.write('Hello CSDN !!'.encode('utf-8'))#向串口发送字符串并指定编码为utf-8

看看pc端的串口调试助手有没有接收到消息 如果收到了 恭喜!完成了串口通信