【雕爷学编程】MicroPython手册之语法架构

在这里插入图片描述

MicroPython是为了在嵌入式系统中运行Python 3编程语言而设计的轻量级版本解释器。与常规Python相比,MicroPython解释器体积小(仅100KB左右),通过编译成二进制Executable文件运行,执行效率较高。它使用了轻量级的垃圾回收机制并移除了大部分Python标准库,以适应资源限制的微控制器。

MicroPython主要特点包括:
1、语法和功能与标准Python兼容,易学易用。支持Python大多数核心语法。
2、对硬件直接访问和控制,像Arduino一样控制GPIO、I2C、SPI等。
3、强大的模块系统,提供文件系统、网络、图形界面等功能。
4、支持交叉编译生成高效的原生代码,速度比解释器快10-100倍。
5、代码量少,内存占用小,适合运行在MCU和内存小的开发板上。
6、开源许可,免费使用。Shell交互环境为开发测试提供便利。
7、内置I/O驱动支持大量微控制器平台,如ESP8266、ESP32、STM32、micro:bit、掌控板和PyBoard等。有活跃的社区。

MicroPython的应用场景包括:
1、为嵌入式产品快速构建原型和用户交互。
2、制作一些小型的可 programmable 硬件项目。
3、作为教育工具,帮助初学者学习Python和物联网编程。
4、构建智能设备固件,实现高级控制和云连接。
5、各种微控制器应用如物联网、嵌入式智能、机器人等。

使用MicroPython需要注意:
1、内存和Flash空间有限。
2、解释执行效率不如C语言。
3、部分库函数与标准版有差异。
4、针对平台优化语法,订正与标准Python的差异。
5、合理使用内存资源,避免频繁分配大内存块。
6、利用原生代码提升速度关键部位的性能。
7、适当使用抽象来封装底层硬件操作。

总体来说,MicroPython让Python进入了微控制器领域,是一项重要的创新,既降低了编程门槛,又提供了良好的硬件控制能力。非常适合各类物联网和智能硬件的开发。

在这里插入图片描述

MicroPython是一种精简版的Python解释器,专门设计用于嵌入式系统和微控制器。它采用了Python语言的语法和一些核心特性,同时进行了一些修改和优化,以适应资源受限的环境。MicroPython语法架构的基本组成部分:

基本语法和数据类型:
MicroPython的基本语法与标准Python非常相似。它支持常见的控制流程语句,如条件语句(if-elif-else)、循环语句(for、while)、函数定义和调用等。MicroPython支持整数、浮点数、布尔值、字符串和字节串等基本数据类型。此外,MicroPython还支持列表、元组和字典等常用的数据结构。

模块和导入:
MicroPython使用模块来组织代码,并通过导入来访问模块中的功能。开发者可以将功能封装在不同的模块中,并使用import语句将模块导入到当前代码中。MicroPython支持相对导入和绝对导入,可以根据需要导入特定的模块或模块中的特定功能。

函数和方法:
MicroPython允许开发者定义和调用函数。函数是一段可重用的代码块,可以接收参数并返回结果。在MicroPython中,可以使用def关键字定义函数。此外,MicroPython还支持对象的方法,即与特定对象关联的函数。对象的方法通过点符号调用,并自动将对象作为第一个参数传递给方法。

异常处理:
与标准Python一样,MicroPython提供了异常处理机制,用于捕获和处理程序中可能出现的错误或异常情况。开发者可以使用try-except语句块来捕获特定的异常,并在发生异常时执行相应的处理逻辑。此外,还可以使用finally子句来定义无论是否发生异常都会执行的代码块。

面向对象编程:
MicroPython支持面向对象编程(OOP),允许开发者定义和使用类、对象和继承等概念。开发者可以使用class关键字定义类,类是一个模板,描述了一类对象的属性和方法。可以使用类创建对象,对象是类的实例,并可以调用类中定义的方法和访问属性。

特殊功能和库:
MicroPython提供了一些特殊功能和库,以便在嵌入式环境中进行硬件控制和交互。例如,MicroPython提供了machine模块,用于访问和控制硬件资源,如GPIO、I2C、SPI和UART等。此外,还有其他专门为嵌入式系统设计的库,例如ujson(用于处理JSON数据)、utime(用于时间管理)和ustruct(用于二进制数据解析)等。

总的来说,MicroPython的语法架构基于标准的Python语法,但进行了一些修改和优化,以适应嵌入式系统和微控制器的资源受限环境。它提供了基本的语法和数据类型、模块和导入机制、函数和方法定义、异常处理、面向对象编程以及特殊功能和库等特性,使开发者能够在嵌入式设备上进行Python编程和硬件交互。

MicroPython语法架构的主要特点是:

它基于Python 3.4的语法标准,保留了Python的核心语法元素,如变量、表达式、语句、函数、类、模块等,以及一些高级特性,如闭包、列表推导式、生成器、异常处理等。
它裁剪了大部分标准库,仅保留了一些基本的内置模块,如math、sys、gc等,以及一些针对MicroPython开发的模块,如ujson、ure、umachine等,这些模块通常以u开头,表示精简版的标准库。
它提供了一些针对嵌入式微控制器的语法扩展和功能,如const修饰符用于创建常量对象;@micropython.native和@micropython.viper装饰器用于提高函数的执行速度;micropython.alloc_emergency_exception_buf函数用于预留一些内存空间,以避免在内存不足时无法抛出异常等。

MicroPython语法架构的应用场景是:

在MicroPython中实现与硬件设备的交互,如控制LED灯、电机、传感器等。
在MicroPython中实现基于硬件设备的应用,如物联网设备、远程控制、消息推送等。
在MicroPython中学习和理解Python语言的基本概念和原理,以及嵌入式系统的编程方法和技巧。

MicroPython语法架构需注意事项是:

使用MicroPython语法架构时要注意与普通Python(即CPython)的兼容性和差异性问题,避免在移植代码时出现错误或异常。
使用MicroPython语法架构时要注意内存的使用和管理问题,避免造成内存不足或垃圾收集器的频繁调用。
使用MicroPython语法架构时要注意不同硬件平台和端口之间的差异和兼容性问题,避免在使用特定功能或模块时出现错误或异常。

以下是MicroPython语法架构三个实际运用程序案例:

案例一:使用MicroPython语法架构创建一个整数对象,并打印它的值和类型。

# 使用const修饰符创建一个整数对象
x = const(42)
# 打印它的值和类型
print(x, type(x))

案例二:使用MicroPython语法架构创建一个引脚对象,并设置为输出模式,并点亮LED灯。

import machine

# 创建一个引脚对象,连接到GPIO2引脚
pin = machine.Pin(2)
# 设置为输出模式
pin.init(mode=machine.Pin.OUT)
# 点亮LED灯
pin.value(1)

案例三:使用MicroPython语法架构创建一个自定义的类对象,并定义它的属性和方法。

import machine

# 创建一个自定义的类对象
class LED:
    # 定义初始化方法
    def __init__(self, pin):
        # 创建一个引脚对象,并保存为属性
        self.pin = machine.Pin(pin, machine.Pin.OUT)
        # 设置初始状态为熄灭
        self.off()
    # 定义点亮方法
    def on(self):
        # 将引脚输出设置为高电平
        self.pin.value(1)
    # 定义熄灭方法
    def off(self):
        # 将引脚输出设置为低电平
        self.pin.value(0)

# 创建一个LED对象,连接到GPIO2引脚
led = LED(2)
# 点亮LED灯
led.on()

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

驴友花雕

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值