第11章 串口通信实验

第十一章 串口通信实验

1. 导入

串口是非常常用的通信接口, 有很多工控产品、 无线透传模块都是使用串口来收发指令和传输数据, 这样用户就可以在无须考虑底层实现原理的前提下将各类串口功能模块灵活应用起来。

ESP32 有三个硬件 UART: UART0、 UART1 和 UART2。 它们每个都分配有默认的GPIO, 如下:

屏幕截图 2024 08 09 093510

UART0 用于下载和 REPL 调试, UART1 用于模块内部连接 Flash, 通常也不使用, 因此可以使用 UART2 与外部串口设备通信。

2. 硬件设计

本实验使用到硬件资源如下:

  • USB转TTL模块

  • ESP32 GPIO

本实验使用 ESP32 开发板的 UART2 与电脑端串口通信, 而电脑端是没有串口的, 因此需要用到一个 USB 转 TTL 模块, 配合电脑端串口调试助手实现通信。

USB 转 TTL 模块如下所示:

屏幕截图 2024 08 09 093823

注意要使用 3.3V 电平的 USB 转串口 TTL 模块, 本实验我们使用串口 2,也就是 17(TX) 和 16(RX) , 接线示意图如下:

屏幕截图 2024 08 09 093938

3. 软件设计

3.1 MicroPython函数使用

UART 在 machine 的 UART 模块中, 我们也是只需要了解其构造对象函数和使用方法即可。

屏幕截图 2024 08 09 094048

使用方法如下:

屏幕截图 2024 08 09 094236

3.2 代码分析

from machine import Pin, UART # 导入Pin和UART模块
import time

# 定义UART控制对象
uart = UART(2,115200,rx=16,tx=17) # 参数: UART号,波特率,TX引脚,RX引脚

if __name__ == '__main__':
    uart.write('Hello, world!\r\n') # 发送数据
    while True:
        if uart.any(): # 如果接收到数据
            data = uart.read(128) # 读取数据
            uart.write(data) # 发送数据


2024.8.21 第一次修订,后期不再维护

posted @ 2024-08-21 14:54  hazy1k  阅读(16)  评论(0编辑  收藏  举报