注意:RT-Thread MicroPython 需要运行在 RT-Thread 3.0 版本以上。
RT-Thread MicroPython mini 版本占用资源最大不超过:
常见的许多开发板都可以运行 MicroPython,如 stm32f10x
、stm32f40x
、stm32f429-apollo
、imxrt1052-evk
、iot-camera
等。
pkgs --upgrade
命令更新软件包列表,并且在配置版本时勾选 latest
版本,如图:RT-Thread env 工具使用手册
MDK / IAR / GCC
,选择合适的开发环境,使用 env 工具将 MicroPython 软件包开启后,需重新生成工程,再进行编译、下载。python
即可进入 MicroPython 的交互命令行 REPL(Read-Evaluate-Print-Loop),可在终端看到如下界面:使用 Ctrl-D
或输入 quit()
以及 exit()
即可退出 REPL ,回到 RT-Thread Finsh/MSH。
MicroPython
比一般的 python 交互环境多了一个特别的粘贴模式,可以一次粘贴输入多行 python 代码。Ctrl-E
组合键,就会出现提示:paste mode; Ctrl-C to cancel, Ctrl-D to finish
。粘贴需要运行的代码后,按下 Ctlr-D
即可退出粘贴模式,同时输入的代码也会自动执行。Ctrl-C
。输入代码:
for i in range(1,10):
print(i)
执行效果如下:
rtthread
模块用来返回系统运行相关的信息。rtthread
和 time
模块为例,调用方式如下:!!! tip "提示" 默认下载的 MicroPython 软件包为 mini 版本,为 RT-Thread 推出的最小版本的 MicroPython ,如果想使用更多的 MicroPython 模块,可以在 menuconfig 配置项中打开更多的模块选项。
通过 MicroPython 可以用非常简单的方式来控制开发板的硬件资源,下面用两个例子来说明:
以下例程运行在 i.MX RT1050 开发板
上,运行之前需要开启 RT-Thread Pin 设备
功能。
import time
from machine import Pin
LED = Pin(("LED1", 52), Pin.OUT_PP) #将第52号 Pin 设备设置为输出模式
while True:
LED.value(1)
time.sleep_ms(500)
LED.value(0)
time.sleep_ms(500)
针对自己的开发板修改引脚号,将以上脚本使用 3.1.2 章节介绍的粘贴模式输入,即可看到 LED 灯按照指定的频率闪烁。使用 Ctrl-C
可以取消当前正在运行程序。
from machine import Pin
led = Pin(("LED1", 52), Pin.OUT_PP)
key = Pin(("KEY", 125), Pin.IN, Pin.PULL_UP) #将第125号 Pin 设备设置为上拉输入模式
while True:
if key.value():
led.value(0)
else:
led.value(1)
针对自己的开发板修改引脚号,使用粘贴模式输入以上脚本,即可通过按键 KEY 控制 LED 灯的亮灭。
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )