1. 对,这就是那个给单片机使用的 [micropython](
https://github.com/micropython/micropython)。
- `micropython.exe`同时包含了[ulab](
https://github.com/v923z/micropython-ulab) 这个简版`numpy`/`scipy`,用于一些数学计算
- `micropython_lvgl.exe`同时包含了[Micropython bindings to LVGL](
https://github.com/lvgl/lv_micropython) 这个`GUI`库
2. 为啥不用[circuitpython](
https://github.com/adafruit/circuitpython)?
[micropython](
https://github.com/micropython/micropython) 有Windows port。同一血脉的 [circuitpython](
https://github.com/adafruit/circuitpython) 没有Windows port。
3. 为啥不直接使用[pylvghl](
https://github.com/rreilink/pylvgl)?
因为我在windows上,使用MSYS2+Mingw64,没有编译成功
4. 支持`ffi`(是官方已有功能,但是不知道为啥`Makefile中`没添加相应代码)。可以运行以`utf8`保存的以下代码
import ffi
user32 = ffi.open('user32.dll')
MessageBoxW = user32.func('i', 'MessageBoxW', 'issi')
NULL = 0
MB_ICONINFORMATION = 0x40
MessageBoxW(NULL, "1汉字2".encode('utf-16'), 'Greeting', MB_ICONINFORMATION)
5. 支持`help`函数,并且可以列出内置模块
>>> help('modules')
__main__ ubinascii uio ustruct
builtins ucollections ujson usys
cmath uctypes ulab utime
gc uerrno umachine utimeq
math uffi uos uzlib
micropython uhashlib urandom
uarray uheapq ure
Plus any modules on the filesystem
6. 为`os`添加了`listdir`函数(很奇怪,即便ESP8266都有这个函数,不知为啥UNIX和Windows版没有)
>>> import os
>>> os.listdir('.')
['.', '..', 'micropython.exe', 'test_ffi.py', 'test_os_listdir.py', 'test_re.py', 'test_ulab.py', 'test_unicode.py', '\u02f5\x03\x07.md']
注意,和标准`CPython`不同之处在于,这里同时列出了 `'.'` 和` '..'`
7. 模块[ulab](
https://github.com/v923z/micropython-ulab)包含了`numpy`和`scipy`的部分功能
所以,以下代码,既可以在`CPython`下运行,又可以在`micropython`下运行
try:
from ulab import numpy
from ulab import scipy
except ImportError:
import numpy
import scipy.special
x = numpy.array([1, 2, 3])
print(x)
print(scipy.special.erf(x))
8. 功能表
| | micropython.exe | micropython_lvgl.exe |
| --------------------------- | --------------- | -------------------- |
| ffi调用DLL函数 | 支持 | 支持 |
| help函数 | 支持 | 支持 |
| help('modules')列出内置模块 | 支持 | 支持 |
| os.listdir | 支持 | 支持 |
| ulab模块 | 支持 | 不支持 |
| lvgl界面库 | 不支持 | 支持 |
--
修改:MetalSlugX FROM 45.85.3.*
FROM 220.173.121.*
附件(1.4MB) test_micropython.zip