2. 在 MicroPython REPL 中交互¶
REPL 是 Read Evaluate Print Loop 的缩写(代表 “读取-求值-输出” 循环,也被称作交互式顶层构件),它是交互式 MicroPython 提示的名称,你可以通过 Zephyr 在开发板上直接使用它。推荐使用 REPL 来测试你的代码和运行命令。
2.1. 在串口上的 REPL¶
REPL 可以在开发板的设备树上声明的 zephyr,console
节点所代表的 UART 串口外设上使用。REPL 的串口波特率为 115200 。如果你的开发板有一个 USB-串口 转换器,那么你可以直接通过它连接到 PC 来使用 REPL
你需要一个终端模拟器程序来通过 USB-串口 访问 REPL。对于一个 Linux 或 Mac 设备,打开终端并运行:
screen /dev/ttyACM0 115200
如果不用 screen 的话,你也可以试试 picocom
或 minicom
。你可能需要用 /dev/ttyACM1
或一个更大的 ttyACM
数字。访问此设备可能需要额外的权限 (例如,uucp
组或 dialout
组,又或者使用 sudo )。对于 Windows 的话,则应使用一个终端软件,例如 PuTTY 来通过串口会话连接到对应的 COM 端口。
2.2. 使用 REPL¶
通过你的串口程序(PuTTY, screen, picocom 诸如此类)打开串口后,你应当看到了一个带有闪烁光标的空白屏幕。按下回车(或重启开发板)后,你应该能看到以下内容:
*** Booting Zephyr OS build zephyr-v2.7.0 ***
MicroPython v1.17-288-gb695f5a70-dirty on 2022-01-03; zephyr-frdm_k64f with mk64f12
Type "help()" for more information.
>>>
现在你可以尝试在你的开发板上直接运行 MicroPython 代码了。
你在交互过程输入的、跟着 >>>`
后的任何东西,都会在你按下回车键后执行。如果你输入的内容中包含了错误,那么错误信息也会被打印出来。
现在开始,先确保以下内容输入后可以正确运行:
>>> print("hello world!")
hello world!
如果你已经了解过一些 python 的知识,那么你可以在这里尝试一些基本的命令了。例如:
>>> 1 + 2
3
>>> 1 / 2
0.5
>>> 3 * 'Zephyr'
ZephyrZephyrZephyr
如果你的开发板有一个 LED 灯,你可以使用以下代码使其闪烁:
>>>import time
>>>from machine import Pin
>>>LED = Pin(("GPIO_1", 21), Pin.OUT)
>>>while True:
... LED.value(1)
... time.sleep(0.5)
... LED.value(0)
... time.sleep(0.5)
上述代码使用 FRDM-K64F 板的 LED 位置(端口 B,引脚 21;遵循 Zephyr 约定,端口由 “GPIO_x” 标识,其中 x 从 0 开始)。当你使用另一块开发板时,你需要根据对应开发板的参考材料来调整相关引用。