.. _micropython_lib: MicroPython 函数库 ===================== 本文档全部内容由 `星瞳科技 <https://singtown.com>`_ 翻译并å‘布。 .. warning:: æ¤éƒ¨åˆ†çš„é‡è¦æ€»ç»“: * MicroPython在æ¯ä¸ªæ¨¡å—ä¸å®žçްPython功能的一个å集。 * ä¸ºç®€åŒ–å¯æ‰©å±•æ€§ï¼Œæ ‡å‡†Python模å—çš„MicroPython版本通常有 ``u`` (micro)å‰ç¼€ã€‚ * 由于资æºçš„é™åˆ¶ï¼Œä»»ä½•特定MicroPythonå˜é‡æˆ–端å£å¯èƒ½ç•¥åŽ»åœ¨æ¤æ–‡æ¡£ä¸æè¿°çš„任何特性/功能。 æ¤ç« 节æè¿°å†…置于MicroPython的模å—ã€‚æœ‰å¦‚ä¸‹å‡ ç§ç±»åž‹çš„æ¨¡å—: * å®žçŽ°æ ‡å‡†Python功能的å集且并ä¸ç”±ç”¨æˆ·è¿›è¡Œæ‰©å±•的模å—。 * å®žçŽ°æ ‡å‡†Python功能的åé›†ä¸”åŒ…æ‹¬ç”¨æˆ·æ‰©å±•çš„æ¡æ¬¾ï¼ˆé€šè¿‡Pythonç¼–ç )。 * 对Pythonæ ‡å‡†åº“å®žçŽ°MicroPython拓展的模å—。 * 特定于æŸä¸€ç«¯å£è€Œä¸å¯ç§»æ¤çš„æ¨¡å—。 æ³¨æ„æ¨¡å—åŠå…¶å†…容的å¯ç”¨æ€§ï¼šæ€»ä½“而言,该文件目的为æè¿°åœ¨MicroPythonä¸å®žçŽ°çš„æ‰€æœ‰æ¨¡å—和函数/类。 但是,MicroPython为高度å¯é…置的,且æ¯ä¸ªç«¯å£åˆ°ä¸€ä¸ªç‰¹å®šçš„æ¿/嵌入å¼ç³»ç»Ÿä»…æä¾›MicroPython库的一个å集。 对于官方支æŒçš„端å£è€Œè¨€ï¼Œç›®å‰æ£å°½åŠ›å®žçŽ°è¿‡æ»¤ä¸é€‚用项目或使用å¯ç”¨æ€§æ¥æ ‡è®°ä¸ªåˆ«æè¿°ï¼šæè¿°æä¾›ç»™å®šç‰¹æ€§çš„端å£çš„åå¥ã€‚ 考虑到这一点,请注æ„åœ¨è¯¥æ–‡æ¡£ä¸æè¿°çš„æ¨¡å—ä¸çš„函数/ç±»å¯èƒ½åœ¨ç‰¹å®šçš„æ¿ä¸Šç‰¹å®šçš„MicroPython的构建ä¸ä¸å¯ç”¨ã€‚ 寻找æŸä¸ªç‰¹å®šåŠŸèƒ½çš„å¯ç”¨æ€§/ä¸å¯ç”¨æ€§çš„一般信æ¯çš„æœ€ä½³ä½ç½®æ˜¯â€œä¸€èˆ¬ä¿¡æ¯ï¼ˆGeneral Information)â€éƒ¨åˆ†ï¼Œå…¶ä¸åŒ…å«ä¸Žç‰¹å®šç«¯å£ç›¸å…³çš„ä¿¡æ¯ã€‚ é™¤äº†åœ¨æ¤æ–‡ä»¶ä¸æè¿°çš„内置库外,Pythonæ ‡å‡†åº“ä¸çš„许多其他模å—,以åŠå¯¹æ¤å…¶çš„MicroPython扩展,都å¯åœ¨ `micropython-lib` 䏿‰¾åˆ°ã€‚ Pythonæ ‡å‡†åº“å’Œmicro-libraries --------------------------------------------- 下é¢çš„æ ‡å‡†Python库已被微型化,以适应MicroPython的原ç†ã€‚这些库执行该模å—çš„æ ¸å¿ƒåŠŸèƒ½ï¼Œå¹¶è¢«è®¾è®¡ä½œä¸ºæ ‡å‡†Python库的替代选择。 以下的æŸäº›æ¨¡å—ä½¿ç”¨æ ‡å‡†çš„Pythonå,但带有“uâ€å‰ç¼€ï¼Œä¾‹å¦‚,其å称为 ``ujson`` è€Œä¸æ˜¯ ``json`` 。 è¿™è¡¨ç¤ºè¿™æ ·çš„ä¸€ä¸ªæ¨¡å—æ˜¯micro-library,å³ä»…实现CPython模å—功能的一个å集。通过以ä¸åŒæ–¹å¼å‘½å它们, 用户å¯ä»¥é€‰æ‹©ç¼–写Pythonçº§åˆ«çš„æ¨¡å—æ¥æ‰©å±•功能,从而更好地与CPythonå®žçŽ°å…¼å®¹ï¼ˆå®žé™…ä¸Šï¼Œè¿™æ£æ˜¯ç”±ä¸Šè¿°çš„ `micropython-lib` 实现的)。 在一些嵌入å¼å¹³å°ä¸Šï¼Œæ·»åŠ Python级别的包装器模å—以实现与CPython的命å兼容éžå¸¸éº»çƒ¦ï¼Œ 而微模å—å¯é€šè¿‡å…¶u命åå’Œéžuå‘½åæ¥ä½¿ç”¨ã€‚è¯¥éžu命åå¯è¢«æ‚¨çš„包路径ä¸çš„åŒå文件覆盖。 例如, ``import json`` 将首先æœç´¢ä¸€ä¸ªæ–‡ä»¶ ``json.py`` 或目录 ``json`` ,若æœå¯»åˆ°ç›¸å…³å†…å®¹ï¼Œåˆ™åŠ è½½è¯¥æ•°æ®åŒ…。 若未æœå¯»åˆ°ç›®æ ‡ä¿¡æ¯ï¼Œåˆ™åŽé€€ä»¥åŠ è½½å†…ç½® ``ujson`` 模å—。 .. only:: port_unix .. toctree:: :maxdepth: 1 builtins.rst array.rst cmath.rst gc.rst math.rst sys.rst ubinascii.rst ucollections.rst uerrno.rst uhashlib.rst uheapq.rst uio.rst ujson.rst uos.rst ure.rst uselect.rst usocket.rst ustruct.rst utime.rst uzlib.rst .. only:: port_pyboard .. toctree:: :maxdepth: 1 builtins.rst array.rst cmath.rst gc.rst math.rst sys.rst ubinascii.rst ucollections.rst uerrno.rst uhashlib.rst uheapq.rst uio.rst ujson.rst uos.rst ure.rst uselect.rst usocket.rst ustruct.rst utime.rst uzlib.rst .. only:: port_wipy .. toctree:: :maxdepth: 1 builtins.rst array.rst gc.rst sys.rst ubinascii.rst ujson.rst uos.rst ure.rst uselect.rst usocket.rst ussl.rst utime.rst .. only:: port_esp8266 .. toctree:: :maxdepth: 1 builtins.rst array.rst gc.rst math.rst sys.rst ubinascii.rst ucollections.rst uerrno.rst uhashlib.rst uheapq.rst uio.rst ujson.rst uos.rst ure.rst uselect.rst usocket.rst ussl.rst ustruct.rst utime.rst uzlib.rst .. only:: port_esp32 .. toctree:: :maxdepth: 1 builtins.rst array.rst gc.rst math.rst sys.rst ubinascii.rst ucollections.rst uerrno.rst uhashlib.rst uheapq.rst uio.rst ujson.rst uos.rst ure.rst uselect.rst usocket.rst ussl.rst ustruct.rst utime.rst uzlib.rst .. only:: port_openmvcam .. toctree:: :maxdepth: 1 builtins.rst array.rst gc.rst math.rst sys.rst ubinascii.rst uerrno.rst uhashlib.rst uheapq.rst uio.rst ujson.rst uos.rst ure.rst uselect.rst usocket.rst ustruct.rst utime.rst uzlib.rst _thread.rst MicroPython特定的库 ------------------------------ MicroPython实现的特定功能å¯åœ¨ä»¥ä¸‹åº“䏿‰¾åˆ°ã€‚ .. toctree:: :maxdepth: 1 btree.rst machine.rst micropython.rst network.rst uctypes.rst .. only:: port_pyboard 特定于 pyboard 的库 --------------------------------- 以下库特定于 pyboard. .. toctree:: :maxdepth: 2 pyb.rst lcd160cr.rst .. only:: port_wipy 特定于 WiPy 的库 --------------------------------- 以下库特定于 WiPy. .. toctree:: :maxdepth: 2 wipy.rst .. only:: port_esp8266 特定于 ESP8266 的库 --------------------------------- 以下库特定于 ESP8266. .. toctree:: :maxdepth: 2 esp.rst .. only:: port_openmvcam 特定于OpenMV Cam的库 ------------------------------------ 以下库特定于OpenMV Cam. .. toctree:: :maxdepth: 2 pyb.rst pyb.ADC.rst pyb.CAN.rst pyb.DAC.rst pyb.ExtInt.rst pyb.I2C.rst pyb.LED.rst pyb.Pin.rst pyb.RTC.rst pyb.Servo.rst pyb.SPI.rst pyb.Timer.rst pyb.UART.rst pyb.USB_VCP.rst omv.time.rst omv.sensor.rst omv.image.rst omv.nn.rst omv.gif.rst omv.mjpeg.rst omv.lcd.rst omv.fir.rst omv.omv.rst