OpenMV模块串口通信教程:硬件接线与软件编程详解
OpenMV模块串口通信教程:硬件接线与软件编程详解
OpenMV是一款基于微处理器的视觉系统开发板,广泛应用于嵌入式视觉项目。串口通信是嵌入式系统中常见的通信方式之一,通过串口可以实现开发板与计算机或其他设备之间的数据传输。本文将详细介绍如何使用OpenMV模块进行串口通信,包括硬件接线和软件编程两个方面。
OpenMV串口调试扩展板
OpenMV串口调试扩展板将OpenMV的串口UART3,通过cp2104芯片连接到电脑,通过USB连接到串口调试扩展板,可以看到OpenMV的串口UART3上发送的数据。
OpenMV 串口调试扩展板 | 星瞳科技
OpenMV和串口调试扩展板,通过2条USB线,都连接到电脑。
使用TTL-USB模块
如果没有OpenMV串口调试扩展板,也可以使用TTL-USB模块,他的作用和OpenMV串口调试扩展板一样。
首先我们要了解的是:各种单片机(包括Arduino, OpenMV, esp8266, stm32, 51)使用的串口都是TTL串口!不是rs485,不是rs232!
TTL串口的电压是3.3V或者5V,RS232的电压是+-15V,RS485的电压是5V,但是两根数据线是差分线,协议不一样,不能通用的。
我们使用的模块是TTL转USB模块(推荐使用cp2104模块,稍微贵一点,但是质量好)
先实例化一个19200波特率的串口,然后调用write方法就可以了。
注意:OpenMV RT 只有串口UART(1),对应P4-TX P5-RX。
OpenMV4 H7 Plus, OpenMV4 H7, OpenMV3 M7 的串口UART(1)是P0-RX P1-TX。
OpenMV4 H7 Plus, OpenMV4 H7, OpenMV3 M7, OpenMV2 M4 的串口UART(3)是P4-TX P5-RX
# 导入 time 模块,该模块提供了各种与时间相关的函数,
# 在这里主要用于控制代码执行的时间间隔,实现延时功能
import time
# 从 machine 模块中导入 UART 类,UART(通用异步收发传输器)
# 是一种用于串行通信的接口,通过它可以实现 OpenMV 与其他设备之间的数据传输
from machine import UART
# 注释掉的这行代码表示也可以从 pyb 模块导入 UART 类,
# pyb 是 MicroPython 中用于访问底层硬件的模块,不同的导入方式可能适用于不同的环境
#from pyb import UART
# 注释内容说明不同型号 OpenMV 开发板的 UART(3) 引脚对应情况
# OpenMV4 H7 Plus、OpenMV4 H7、OpenMV3 M7、OpenMV2 M4 这些型号的开发板,
# 其 UART(3) 接口对应的引脚是 P4(发送引脚 TX)和 P5(接收引脚 RX)
# OpenMV4 H7 Plus, OpenMV4 H7, OpenMV3 M7, OpenMV2 M4 的UART(3)是P4-TX P5-RX
# 创建一个 UART 对象,使用 UART(3) 接口,波特率设置为 19200
# 波特率是指数据传输的速率,即每秒传输的比特数,这里 19200 表示每秒传输 19200 个比特
# 对于 OpenMV RT 型号的开发板,需要注释掉这一行,使用下面的 UART(1) 那一行代码
uart = UART(3, 19200) #OpenMV RT 注释掉这一行,用下一行UART(1)
# 这行代码是为 OpenMV RT 型号开发板准备的,使用 UART(1) 接口,波特率同样为 19200
# 注释掉上面的 UART(3) 行,使用这一行代码
#uart = UART(1, 19200) #OpenMV RT 用UART(1)这行,注释掉上一行UART(3)
# 注释内容说明不同型号 OpenMV 开发板的 UART(1) 引脚对应情况
# OpenMV RT 型号开发板只有串口 UART(1),对应的引脚是 P4(发送引脚 TX)和 P5(接收引脚 RX)
# OpenMV4 H7 Plus、OpenMV4 H7、OpenMV3 M7 这些型号的开发板,其 UART(1) 接口对应的引脚是 P0(接收引脚 RX)和 P1(发送引脚 TX)
# OpenMV RT 只有串口UART(1),对应P4-TX P5-RX; OpenMV4 H7 Plus, OpenMV4 H7, OpenMV3 M7 的UART(1)是P0-RX P1-TX
# 进入一个无限循环,使得代码会一直重复执行,直到程序被手动停止或设备断电
while(True):
# 通过 UART 接口发送字符串 "Hello World!\r"
# \r 是回车符,在串行通信中有时用于表示一行的结束或数据传输的一个分界点
# write 方法用于向 UART 接口写入数据
uart.write("Hello World!\r")
# 让程序暂停执行 1000 毫秒,即 1 秒
# 这样可以控制数据发送的时间间隔,每 1 秒发送一次 "Hello World!" 字符串
time.sleep_ms(1000)
将TTL模块的USB端插入电脑,会出现一个串口。
星瞳串口助手
首先下载星瞳串口助手:
星瞳串口助手SingTownSerialport | 星瞳科技
星瞳串口助手是一款,简洁易用,支持Windows,MacOS,Linux的开源的串口助手。
运行程序
注意,有些软件是可以选择HEX(16进制)或者ASC(ascii),要选择ASC,才能显示字符串。
OpenMV上运行uart.write("hello world!")的程序(见上节)。
在串口助手会显示Hello world!字符。