MaixPy的标准库
前言
现在我们就要谈一下MaixPy的功能了,如同所有语言一般,MaixPy也是有自己的语法的,那就是Micropython的库,通信的库,MaixPy开发板特有的库等,其中会有许多常用的函数,我们需要了解他们在需要的时候可以及时找到,灵活应用,这个不需要全部记住,不过在几个常用的板块,如FPIOA(可编程引脚)KPU(神经元网络加速),我们还是要好好理解一下的。
本文中例程还未实践完毕。
接下来,我来把MaixPy的功能简介一下,其所含函数会以链接形式编写,希望对大家有帮助。顺便说一下,英语好在这部分真的很占优势,我这种渣渣,学完了也认识了几个单词,快上车吧。
标准库
标准库里是类库和函数的集合,支持部分语言特性和常用的函数。
1. cmath
复数的数学函数,提供了一些处理复数的基本数学函数。
2.gc
控制垃圾收集器,此函数是MicroPython扩展。要求用“malloc”或“new”分配内存,使用用户内存管理自动化,任务是跟踪所有对象被引用到的地方。
3.math
提供了一些处理浮点数的基本数学函数。
4.sys
系统特定功能。
5.ubinascii
以ASCII格式(两个方向)实现二进制数据与其各种编码之间的转换。
6.ucollections
集合和容器类型,用高级集合和容器类型以保存/累积各种对象。
7.uctypes
以结构化方式访问二进制数据,允许访问机器的任意内存地址(包括I / O和控制寄存器),要小心,可能会导致崩溃,数据丢失,甚至硬件故障。
定义结构布局
结构布局由“描述符”定义 ,一个Python字典,它将字段名称编码为键,以及将它们作为关联值访问它们所需的其他属性。uctypes需要明确规定每个字段的偏移量,从结构开始以字节为单位给出偏移量。不同字段类型的编码和偏移量不同。
结构描述符和实例化结构对象
可以使用uctypes.struct()构造函数在给定的内存地址实例化特定的结构实例。
8.uerrno
系统错误代码,所有错误代码均以 “E” 开头。
9.uheapq
堆队列算法,也称为优先队列算法,堆队列只是一个以某种方式存储其元素的列表。
10.ujson
允许在 Python 对象和 JSON 数据格式之间进行转换。
11.uos
基本的“操作系统”服务,包含用于文件系统访问和挂载,终端重定向和复制以及uname和urandom等函数。
12.ure
简单的正则表达式,又称规则表达式。通常被用来检索、替换那些符合某个模式(规则)的文本。
13.usocket
套接字模块,提供对BSD套接字接口的访问。
套接字(socket)是一个抽象层,应用程序可以通过它发送或接收数据,可对其进行像对文件一样的打开、读写和关闭等操作。套接字允许应用程序将I/O插入到网络中,并与网络中的其他应用程序进行通信。网络套接字是IP地址与端口的组合。
注:下载图片并显示和发送图片例程未实现
14.ustruct
打包和解包原始数据类型。
15.utime
提供获取当前时间和日期,测量时间间隔和延迟的功能。
16.uzlib
允许解压使用 DEFLATE 算法压缩的二进制数据(通常用于zlib库和gzip存档器)。这个类是MicroPython扩展。它包含在临时基础上,可能会在以后的版本中进行大量更改或删除。
machine
主要包含了与硬件相关的各种接口,是通信的库。
1.I2C
总线协议,简单地使用两条线(SCL,SDA)可以控制多个从机(主机模式)。
扫描从机设备例程与输出如图(小白的几个从机的例程结果都如箭头所指)
2.PWM
脉宽调制模块, 硬件支持的PWM, 可以指定任意引脚(0到47引脚)。
注:未实现,需要示波器。
3.SPI
串行外设接口(Serial Peripheral Interface)的缩写,一个同步串行协议,由主机和从机组成。在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便。
基本读写例程实现结果如下图(此过程亮两个红灯,一个蓝灯,其中一个红灯闪烁)
4.Timer
硬件定时器,可以用来定时触发任务或者处理任务,设定时间到了后可以触发中断(调用回调函数),精度比软件定时器高。 需要注意的是,定时器在不同的硬件中可能会有不同的表现。
那为什么要使用定时器呢?
比如说一个web应用,如果这个应用规模很大,那它的日志数据是不是很多。如果一直存下来服务器的存储量怕是不行吧,需要隔一段时间删除,那么就需要一个线程每隔一段时间去删除日志数据。
注:例程有语法错误,未执行成功
5.UART
主要用于驱动开发板上的异步串口,通用异步收发传输器。它将要传输的资料在串行通信与并行通信之间加以转换。作为把并行输入信号转成串行输出信号的芯片,UART通常被集成于其他通讯接口的连结上。
注:例程1暂时没有杜邦线,还未实践。