查看: 195|回复: 0

[IDE系列教程] ESP32 常用的模块 micropython 3.1.12

[复制链接]

micropython—访问和控制MicroPython

函数

1. micropython.const(expr)

函数说明: 用于声明该变量的值是一个常量,以便解释器可以优化它。
示例:

from micropython import const

CONST_X = const(123)
CONST_Y = const(2 * CONST_X + 1)
print(CONST_X)
print(CONST_Y)

运行结果:

123
247

使用 const 声明为一个常量后,它的值不可被更改。
示例:
新建一个文件,命名为test.py

from micropython import const

a = const(1)
a = 4

试图更改常量时,会出产生如下错误。

exec(open('test.py').read(),globals())
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<string>", line 4, in <module>
SyntaxError: can't assign to expression

2. micropython.opt_level(level)

函数说明: 如果给定级别level,那么该函数将为后续的脚本解释执行设置优化级别。否则,它将返回当前的优化级别。

3. micropython.mem_info(level)

函数说明: 打印当前内存使用的情况(包括栈和堆的使用量)。
注意:
如果给出参数level(任何数据类型),则打印出更加详细的信息,它会打印整个堆,指示哪些内存块被使用,哪些内存是空闲的。
示例一: 不给参数

>>>micropython.mem_info()
stack: 736 out of 15360
GC: total: 48000, used: 7984, free: 40016
 No. of 1-blocks: 72, 2-blocks: 31, max blk sz: 264, max free sz: 2492
>>>

示例二: 给定参数

>>>micropython.mem_info("level")
stack: 752 out of 15360
GC: total: 48000, used: 8400, free: 39600
 No. of 1-blocks: 82, 2-blocks: 36, max blk sz: 264, max free sz: 2466
GC memory layout; from 3ffc4930:
00000: h=ShhBMh=DhBhDBBBBhAh===h===Ahh==h==============================
00400: ================================================================
00800: ================================================================
00c00: ================================================================
01000: =========================================hBh==Ah=ShShhThhAh=BhBh
01400: hhBhTShh=h==h=hh=Bh=BDhhh=hh=Bh=hh=Bh=BhBh=hh=hh=h===h=Bhh=h=BhB
01800: h=hh=h=Bh=hBh=h=hBh=h=hBh=h=h=hh=======h========================
01c00: ============================================Bh=hBhTh==hh=hh=Sh=h
02000: h==Bh=B..h...h==....h=..........................................
       (37 lines all free)
0b800: ........................................................
>>>

4. micropython.qstr_info([verbose])

函数说明: 打印当前所有已使用的字符串在内存中的个数,占用内存大小等信息。
注意:
如果给出参数,则打印出具体的字符串信息。打印的信息是依赖于实际情况的,包括被录入的字符串数量和它们使用的RAM的数量。在详细模式中,它打印出所有字符串的名称。
示例一: 不给参数

>>>micropython.qstr_info()  
qstr pool: n_pool=1, n_qstr=4, n_str_data_bytes=31, n_total_bytes=1135
>>>

示例二: 给定参数

>>>micropython.qstr_info("level")  
qstr pool: n_pool=1, n_qstr=4, n_str_data_bytes=31, n_total_bytes=1135
Q(b)
Q(2)
Q(asdfa222)
Q(level)
>>>

5. micropython.stack_use()

函数说明: 返回一个整数,表示正在使用的堆栈的当前量。
示例:

>>>micropython.stack_use()
720

6. micropython.alloc_emergency_exception_buf(size)

函数说明: 设置紧急情况下的(栈溢出,普通RAM不足等)保险RAM分配,使在紧急情况下仍有RAM可用。

size:保险剩余RAM的大小,一般为100

7. micropython.heap_lock()

函数说明: 锁定堆,当堆被锁定时,任何操作都不会分配内存 。如果尝试内存分配操作,则会产生MemoryError错误。

注意:
一旦锁定堆,除非重新开机,否则其他有关堆区的操作都会出错。

8. micropython.heap_unlock()

函数说明:解锁堆

9. micropython.kbd_intr(chr)

函数说明: 在解释执行py文件时设置键盘中断响应。
示例:

#以下程序执行在py文件
import micropython
import time

micropython.kbd_intr(-1)
time.sleep(8)
micropython.kbd_intr(3)
#此时不会再响应键盘的ctrl+c,8秒钟后才可以响应

10. micropython.schedule(func, arg)

函数说明:这个函数通常是用在中断中,用于在退出中断时快速执行函数func。

func:在退出中断时需要快速执行的方法
arg:该方法的变量

示例:

>>> def testFunc(t):
...     print("run now")
...     time.sleep(t)
... 
>>> micropython.schedule(testFunc, 1)
run now
高级模式
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2020 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail