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

本文介绍了如何使用MicroPython在ESP32上实现串口数据的收发。通过连接硬件并编写Python代码,实现了串口的发送和接收功能,同时探讨了Python中bytes和str类型的区别,并提供了一个自发自收的实验案例,鼓励读者发现并解释输出结果的差异。
摘要由CSDN通过智能技术生成

1. 引言

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

2. 环境介绍 2.1. 硬件

ESP32 小板:

Micro USB线:

USB转TTL:

2.2. 软件

1) PC端Wndows系统,Python 2.7环境 或者 Python 3.4以及更新的版本

2) 板子上Micropython 环境

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

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

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

3. 串口 发送

代码如下:

from machine import UART,Pinuart = 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,Pinuart = 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,Pinuart = 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使用可以参考:docs.micropython.org/en/latest/library/machine.UART.html

5. 自发自收实验

cirmall.com/bbs/thread-102657-1-1.html 这里有个自发自收的例子,将G12和G13短接在一起。

运行结果如下:

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

细心的读者,有没有发现两者输出结果有什么不同吗?

如果没看出来的话,提示一下,大家看看Send Byte: 后面有什么不同。

这个原因我想了一段时间,大家知道什么原因吗,欢迎评论区留言。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值