树莓派之串口调试
为了验证继续树莓派和TPyBoard两个板子之前LoRa模块的正常通信,有必要先调试树莓派板子和TPyBoard板子的串口通信是否正常。本篇文章旨在调试树莓派和PC之间的串口通信功能、TPyBoard和PC之间的串口通信功能。
首先需要准备相关硬件设备:
其次需要准备的软件为:
拿到树莓派开发板的时候,是裸板,需要自行安装操作系统并进行配置才能启动。
首先,从树莓派官网下载对应的操作系统到PC;打开Win32DiskImage烧写工具,选择镜像、TF卡盘符,单击“写入”进行烧写;烧写完成后,将TF卡插入树莓派TF卡槽;
第一次启动,需要采用显示器、USB键盘的连接方式,连接完成,在终端中可以输入pi\raspberry登录。
输入以下命令打开树莓派配置:
sudo raspi-config
打开WiFi配置、ssh配置(方便下次访问可以通过远程ssh方式连接,配置过程略)
下面介绍重点介绍串口配置,选择5 Interfacing Options,选择P6 Serial
Would you like a login shell to be accessible over serial
选择No;
Would you like the serial port handware to be enabled?
选择Yes
完成后,执行reboot重启:
sudo reboot
再次登录,使用ssh方式登录树莓派,查看串口设备:
ls -l /dev/
console=tty1 console=serial0(or ttpAMA0),115200 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
[all]
enable_uart=1
dtooverlay=pi3-miniuart-bi
sudo systemctl disable hciuart
再次执行reboot重启树莓派
树莓派引脚 | USB转TTL引脚 |
---|---|
Ground(06) | GND |
GPIO14 - TXD0(06) | RXD |
GPIO15 - RXD0(08) | TXD |
注意:Ground引脚与GND引脚必须连接,否则调试窗口将持续输出串口数据
图中可以看出,黑色杜邦线,一端连树莓派的06引脚(TXD),另一端连USB转TTL的RXD引脚;白色杜邦线,一端连树莓派的10引脚(RXD),另一端连USB转TTL的TXD引脚;棕色杜邦线连接两端的GND引脚
sudo minicom -D /dev/ttyAMA0 -b 9600
ctrl A 按下E进入回显模式,可以查看到minicom控制台下输入和输出的字符串。
此时,在minicom下输入hello, I am raspberry,字符串会同步显示到串口调试助手的窗口中;在串口调试助手的文本框中输入“Nice to meet you! I am serial helper!”,点击发送,字符串也会显示到minicom终端中,说明树莓派的串口调试通过。
树莓派串口调试通过示意图
贴一个没有接GND引脚时的调试结果,串口调试助手的窗口中不停的在刷来自树莓派的串口数据,一直没有搜索到原因,如果有知道原因的,欢迎回复留言,不胜感激!
由于TPyBoard不需要安装操作系统,因此给tpyboard上电以后,使用putty的串口功能即可连接tpyboard,进入以后,默认就是python解释器的命令行
tpyboard引脚 | USB转TTL引脚 |
---|---|
GND | GND |
Y1 - TXD0 | RXD |
Y2 - RXD0 | TXD |
三根杜邦线连接USB转TTL
三根杜邦线连接tpyboard
图中可以看出,红色杜邦线,一端连tpyboard的Y1引脚(TX),另一端连USB转TTL的RXD引脚;橙色杜邦线,一端连tpyboard的Y2引脚(RX),另一端连USB转TTL的TXD引脚;棕色杜邦线连接两端的GND引脚
# 初始化UART对象
>>> from pyb import UART
>>> u = UART(6, 9600)
>>> u.init(9600, bits=8, parity=None, stop=1)
# 调用串口对象写入数据
>>> u.write("hello, I am tpyboard")
23
此时在串口调试助手的窗口中,可以看到接收到的字符串。
# 接收字符串
>>> u.any()
28
>>> u.read()
b'hello, this is serial helper'