函数说明:将字符串转换为十六进制表示的字符串。 示例:
>>> ubinascii.hexlify('\x11\x22123')
b'1122313233'
>>> ubinascii.hexlify('abcdfg')
b'616263646667'
如果指定了第二个参数sep,它将用于分隔两个十六进制数。 示例:
>>> ubinascii.hexlify('\x11\x22123', ' ')
b'11 22 31 32 33'
>>> ubinascii.hexlify('\x11\x22123', ',')
b'11,22,31,32,33'
函数说明:转换十六进制字符串为二进制字符串,功能和 hexlify 相反。 示例:
>>> ubinascii.unhexlify('313233')
b'123'
gc模块可以回收系统运行中产生的内存碎片。
函数说明:允许自动回收内存碎片。
函数说明:禁止自动回收,但可以通过collect()函数进行手动回收内存碎片。
函数说明:回收内存碎片。
函数说明:返回已分配的内存数量。
函数说明:返回剩余的内存数量。
函数说明:判断是否启动自动内存碎片收集。
函数说明:当未设置参数amount时,返回已设置的GC回收触发阀值,否则设置触发阀值为amount。
json模块提供json数据格式的转换。
函数说明:将dict类型的数据转换成str,因为如果直接将dict类型的数据写入json文件中会发生报错,因此在将数据写入时需要用到该函数。
obj:要转换的对象
示例:
>>> obj = {1:2, 3:4, "a":6}
>>> print(type(obj), obj) #原来为dict类型
<class 'dict'> {3: 4, 1: 2, 'a': 6}
>>> jsObj = json.dumps(obj) #将dict类型转换成str
>>> print(type(jsObj), jsObj)
<class 'str'> {3: 4, 1: 2, "a": 6}
函数说明:解析 JSON 字符串并返回对象。如果字符串格式错误将引发 ValueError 异常。 示例:
>>> obj = {1:2, 3:4, "a":6}
>>> jsDumps = json.dumps(obj)
>>> jsLoads = json.loads(jsDumps)
>>> print(type(obj), obj)
<class 'dict'> {3: 4, 1: 2, 'a': 6}
>>> print(type(jsDumps), jsDumps)
<class 'str'> {3: 4, 1: 2, "a": 6}
>>> print(type(jsLoads), jsLoads)
<class 'dict'> {'a': 6, 1: 2, 3: 4}
micropython—访问和控制MicroPython
函数说明: 用于声明该变量的值是一个常量,以便解释器可以优化它。 示例:
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
函数说明: 如果给定级别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: ........................................................
>>>
函数说明: 打印当前所有已使用的字符串在内存中的个数,占用内存大小等信息。
注意: 如果给出参数,则打印出具体的字符串信息。打印的信息是依赖于实际情况的,包括被录入的字符串数量和它们使用的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)
>>>
函数说明: 返回一个整数,表示正在使用的堆栈的当前量。 示例:
>>>micropython.stack_use()
720
函数说明: 设置紧急情况下的(栈溢出,普通RAM不足等)保险RAM分配,使在紧急情况下仍有RAM可用。
size:保险剩余RAM的大小,一般为100
函数说明: 锁定堆,当堆被锁定时,任何操作都不会分配内存 。如果尝试内存分配操作,则会产生MemoryError错误。
注意: 一旦锁定堆,除非重新开机,否则其他有关堆区的操作都会出错。
函数说明:解锁堆
函数说明: 在解释执行py文件时设置键盘中断响应。 示例:
#以下程序执行在py文件
import micropython
import time
micropython.kbd_intr(-1)
time.sleep(8)
micropython.kbd_intr(3)
#此时不会再响应键盘的ctrl+c,8秒钟后才可以响应
函数说明:这个函数通常是用在中断中,用于在退出中断时快速执行函数func。
func:在退出中断时需要快速执行的方法
arg:该方法的变量
示例:
>>> def testFunc(t):
... print("run now")
... time.sleep(t)
...
>>> micropython.schedule(testFunc, 1)
run now