2016 - 2024

感恩一路有你

python获取返回函数的值 micropython是用python写的吗?

浏览量:2182 时间:2023-05-23 17:11:40 作者:采采

micropython是用python写的吗?

MicroPython在设计上曾经在是就是为了嵌入式微处理器运行程序,的或在nRF51822 (256kB flash 16kB RAM)的芯片上也可以不运行下来,也有人肾得慌在STM32F103上真的跑起来了,从代码进来看Python函数栈的官方默认是16KRAM,也就意味着什么它是可以在许多微芯片上提供一个最小的Python代码交互环境,但这的确包涵它们的拓展功能,况且编译更多的功能代码意味着不需要更多的Flash或外部存储。

一定高度与宽度

参照定位的场景这个时候MicroPython在硬件的深度是可以去到超低功耗芯片开发领域,而区分Python语言的开发决定了它的软件宽度这个可以站在全世界比较热门的Python领域中并且借鉴模仿和参考,这给了了许多变动,如变动以往的硬件测试流程和开发流程,变动一贯以为的硬件程序开发难了的刻板印象,这个现象之后会祥细阐述。

Arduino(C)

基于组件C代码设计

占据和C兼容性的优势,可以不无缝技术接入ESP-IDF。

更多遗留下来的代码库可以直接整合不使用。

近年来的需要提供的外设硬件库质量小幅度提高会下降,造成硬件开发后的稳定性薄弱。

Javascript

最常见的一种于Rufflite、JerryScript等。

新生事物,同MicroPython有几分相似的结构

意见JS异步驱动安装事件模型,特别要求芯片必须占据系统(RTOS)。

在硬件上使用浏览器形式的开发

硬件驱动相关支持库较弱,基于组件此精耕硬件接口的开发者太少。

相关的开发资料和代码够稳定。

lua

两者相比MicroPython和JerryScript它的可移植性要来得更为很简单一些。

如仓库:

但而lua是小众语言,地位和bat、bash也差不多。

因为不是什么在开发应用领域里不是很很流行,但作为自动化脚本工具应该很棒的。

开发资料相关周边的基本没有,会lua的大都大都独自芬芳,诸如我(至少)。

ESPEasy

至少算是一种开发环境,传说中的路由器系统(openwrt)

除开最好玩,就没有什么用了。

像这样的固件有很多很多,在这里就不全部举例子了。

esp-idf

硬件开发芯片原厂像是都会提供的SDK,esp32提供给的多为esp-idf、esp-adf、esp-mdf诸如此类,不对应的stm32的hal或CC25XXstack等等原生C代码SDK。

上述事项开发环境均基于条件此再变更土地性质得来的产物。

当经过了根据上述规定的各类开发环境的进一步认识,我们就来说说看MicroPython差不多后的优劣吧。

MicroPython的优劣

我们不算难看到,MicroPython和Python一样的,可以发挥了胶水语言的优势,利用最大化的兼容性问题和一直保持了各自的优势,下降自己的劣势。

在动态语言大战中,MicroPython恢复了走向过程、对象、切面、函数的编程语法,相当丰富的开发受到了代码的开发广度,反观lua从语法上砍掉了大量变更土地性质常用的语法糖,小幅度提高的裁切代码量,在开发者开箱即用的角度来看,MicroPython挑动了大多数开发者的拿来主义(我?)。

与JavaScript而言的Python在性能上没有太多的优势,真正的优势那是Js的编程思维并不适合我会导致沁染在面向过程领域里的C语言硬件编程,比如串口收发信件这样简单点一件事情,在Js的异步模式事件没绑定模型下,是需要系统设置一些回调函数耐心的等待一次性处理,而在MicroPython中,按照多线程可以基于Js的效果,但没有多线程也也可以实际While死循环轮询或非造成堵塞状态机来实现方法同样的的功能,而后者的死循环那是嵌入式C中的最常见编程养成的习惯了,但在JS的硬件编程中,某个函数若是再一次发生了死循环,那真的是一种灾难,所有的后台线程都不能运行了,但死循环这样的开发确实太烂了,个人建议硬件开发的时候多写异步驱动代码,或者是状态机代码,以想提高IO性能。

所以MicroPython在数千相册语言中与C语言的兼容性为最佳的方法,在程序设计上也是会如此,向下兼容语言的同时又吸收到了上层杰出代码的精髓,尤其是无比机制和闪图类型。

此时相比C或C语言,MicroPython代价了一些负责执行性能,平均每段Python代码回到C的执行函数操作五十点增加了5us左右,这是我在写软串口的时候发现的,但也受到了解释器接口(其他闪图语言也如此),实际动态调整执行接口的参数,速度了硬件程序的验证与开发。

在遇上硬件程序的主芯片方面的开发,你经常对于大量的硬件API通信调试,竟像设置参数网络服务里的HTTPAPI,对硬件里的UART、I2C、SPI、RS485、CAN等等从机设备的控制,在用MicroPython接受变更土地性质验证,要比完全是使用C、Arduino来的极为迅速地,况且它们编译程序四次2分钟,运行10秒,而MicroPython烧录器2分钟,结束后每隔5秒运行发热发冷正常运行,这也得益于MicroPython的硬件外设驱动的开发非常比较可靠和稳定啊(不过是ESP-IDF稳定和可靠的原因XD)。

所以别人花一天设置参数的硬件接口,我两个小时就也可以调试得一多半了,尤其是多机协议的反复测试接口,或者:Modbusreadaddr或者这类接口。当然了,上述的这种旗下甚至是封装成AT指令的接口也也可以可以做到,但在Python讲解器的基础上可以不编译程序更多古怪的情报营逻辑操作,而非AT固件的更改接口形式调试。

综上可知,MicroPython的硬件开发地位处于硬件开发的初期验证和远古时期开发阶段,在后期基本都都会拉回C,而软件领域里,则有大量的逻辑示例代码供硬件开发调用和测试,相对于硬件开发人员,城就会我得到一些压制硬件的方法,这对软件人员也会更不容易的依靠硬件人员开发硬件和调试硬件。

结语

python如何在一个函数中调用另一个函数返回的多个值中的一个?

不需要的值用_能用。或者,如果b的值:_,b,_return()

硬件 开发 MicroPython 代码

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。