MicroPython 玩转硬件:串口小实验
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!")
运行结果如下,
完成的功能即: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.html5.自发自收实验http://www.cirmall.com/bbs/thread-102657-1-1.html 这里有个自发自收的例子,使用前将G12引脚和G13引脚短接在一起。直接将代码复制到串口窗口中,运行结果如下:
使用上一篇介绍的通过 ampy --port COM3 run --no-output uart.py 方法,在串口中可以看到输出结果如下:
细心的读者,有没有发现两者输出结果有什么不同吗?如果没看出来的话,提示一下,大家看看Send Byte: 后面有什么不同。这个原因我想了一段时间,大家知道什么原因吗,欢迎评论区留言。

最新活动更多
-
精彩回顾立即查看>> 慕尼黑华南电子展
-
精彩回顾立即查看>> OFweek2020物联网与人工智能大会暨展览会
-
精彩回顾立即查看>> 【直播】“科技成就至美生活”CIOE ams展台及传感器应用现场秀
-
精彩回顾立即查看>> OFweek 2020消费电子在线大会
-
精彩回顾立即查看>> 【在线研讨会】博乐光学模组的钢选型及分析
-
精彩回顾立即查看>> 【季度甄选】第二季度半导体行业资讯
推荐专题
- 可穿戴传感器设计工程师 武汉久乐科技有限公司
- 智能可穿戴嵌入式高级开发工程师 深圳市微队信息技术有限公司
- 智能手表/手环可穿戴平台软件研发工程师 广州软拓信息科技有限公司
- 产品结构设计 MD设计师 蓝牙 可穿戴产品 深圳市路路哒科技有限公司
- 智能可穿戴设备人员 济南汇通远德科技有限公司
- 可穿戴项目开发经理 广芯微电子(广州)股份有限公司
- 高级嵌入式软件工程师(可穿戴式医疗器械方向) 浙江清华柔性电子技术研究院
- 高级通信标准工程师(物联网与可穿戴设备) OPPO
- 可穿戴设备嵌入式开发 北京商高科技有限公司
- 可穿戴医疗营销副总 达铭实业(宿州)股份有限公司
- 嵌入式软件工程师(ARM) 山东省/潍坊市
- 光学工程师 山东省/潍坊市
- 华东销售经理 江苏省/苏州市
- 高级采购 北京市/海淀区
- 海外销售工程师 北京市/海淀区
- 海外销售经理 北京市/海淀区
- 销售工程师 北京市/海淀区
- SEO搜索引擎优化专员 北京市/海淀区
- DQE经理 广东省/深圳市
- 业务员 广东省/深圳市
发表评论
请输入评论内容...
请输入评论/评论长度6~500个字
暂无评论
暂无评论