MicroPython 玩转硬件系列4:串口小实验

简介: MicroPython 玩转硬件系列4:串口小实验

1.引言

本篇介绍ESP32上通过MicroPython实现串口数据的收发。                    

2.环境介绍

ESP32 小板:

Micro USB线:

USB转TTL:

在进行第3节和第4节实验前,还需要:

将板子G12引脚和USB转TTL的RXD引脚短接将板子G13引脚和USB转TTL的TXD引脚短接

将板子GND引脚和USB转TTL的GND引脚短接

3.串口发送

代码如下:

from machine import UART,Pin
uart = UART(2, baudrate=115200, rx=13,tx=12,timeout=10)
uart.write("ESP32 uart send example!\r\n")

结果如下,

完成的功能即:ESP32通过串口发送数据给USB转TTL设备

4.串口接收

代码如下:

from machine import UART,Pin
uart = UART(2, baudrate=115200, rx=13,tx=12,timeout=10)
while True:
   if uart.any():
        rev_data = uart.read()
        print(rev_data)

结果如下:在左侧窗口里发送什么,右侧窗口就会接收到什么。

完成的功能即:USB转TLL设备通过串口发送数据给ESP32。如果改为:

from machine import UART,Pin
uart = UART(2, baudrate=115200, rx=13,tx=12,timeout=10)
while True:
    if uart.any():
       rev_data = uart.read()
        print(rev_data.decode())

则结果如下:

两者的输出结果有差异,这里涉及到Python中bytes和str两种数据类型的问题,readline函数的返回值是bytes类型。

strings可以被编码(encode)成字bytes,bytes也可以解码(decode)成strings。更多关于UART使用可以参考:https://docs.micropython.org/en/latest/library/machine.UART.html

5.自发自收实验

http://www.cirmall.com/bbs/thread-102657-1-1.html 这里有个自发自收的例子,使用前将G12引脚和G13引脚短接在一起。直接将代码复制到串口窗口中,运行结果如下:

使用上一篇介绍的通过 ampy --port COM3 run --no-output uart.py 方法,在串口中可以看到输出结果如下:

细心的读者,有没有发现两者输出结果有什么不同吗?如果没看出来的话,提示一下,大家看看Send Byte: 后面有什么不同。这个原因我想了一段时间,大家知道什么原因吗,欢迎评论区留言。

6.参考资料

http://www.cirmall.com/bbs/thread-102657-1-1.htmlhttps://docs.micropython.org/en/latest/library/machine.UART.html

https://www.cnblogs.com/abclife/p/7445222.html

相关文章
|
9月前
|
开发工具 芯片
LabVIEW编程LabVIEW控制研华PCI-1739U例程与相关资料
LabVIEW编程LabVIEW控制研华PCI-1739U例程与相关资料
71 1
LabVIEW编程LabVIEW控制研华PCI-1739U例程与相关资料
|
9月前
|
数据采集 传感器 人工智能
LabVIEW编程LabVIEW开发NI PCI-6255消除鬼影 例程与相关资料
LabVIEW编程LabVIEW开发NI PCI-6255消除鬼影 例程与相关资料
69 7
|
Linux 测试技术 Windows
可编程 USB 转串口适配器开发板应用于电子设备开发测试
可编程 USB 转串口适配器开发板应用于电子设备开发测试
可编程 USB 转串口适配器开发板应用于电子设备开发测试
|
9月前
LabVIEW编程LabVIEW开发研华PCI-1710 数据采集卡例程与相关资料
LabVIEW编程LabVIEW开发研华PCI-1710 数据采集卡例程与相关资料
123 2
|
数据安全/隐私保护
MicroPython 玩转硬件系列5:WIFI实验
MicroPython 玩转硬件系列5:WIFI实验
|
9月前
|
数据采集
LabVIEW编程LabVIEW控制研华PCI-1756例程与相关资料
LabVIEW编程LabVIEW控制研华PCI-1756例程与相关资料
42 0
|
供应链 芯片
一种LED驱动专用控制电路
一、基本概述 TM1620是一种LED(发光二极管显示器)驱动控制专用IC,内部集成有MCU数字接口、数据锁存 器、LED驱动等电路。本产品质量可靠、稳定性好、抗干扰能力强。主要适用于家电设备(智能热 水器、微波炉、洗衣机、空调、电磁炉)、机顶盒、电子称、智能电表等数码管或LED显示设备。 二、基本的特性说明 采用CMOS工艺 显示模式(8 段×6 位~10段×4位) 辉度调节电路(8 级占空比可调) 串行接口(CLK,STB,DIN) 振荡方式:内置RC振荡 内置上电复位电路 内置数据锁存电路 内置针对LED反偏漏电导致暗亮问题优化电路 抗干扰能力强 封装形式:S
107 5
|
9月前
|
网络协议 Linux
嵌入式单片机开源的串口示波器实现方法
嵌入式单片机开源的串口示波器实现方法
87 0
|
C语言 Python Windows
MicroPython 玩转硬件系列2:点灯实验
MicroPython 玩转硬件系列2:点灯实验
|
Linux 开发工具 git
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(三十)LED模板驱动程序的改造:总线设备驱动模型
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(三十)LED模板驱动程序的改造:总线设备驱动模型
247 1
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(三十)LED模板驱动程序的改造:总线设备驱动模型