前几篇都是直接在命令上操作,然而执行py文件才是王道,其实类似nodemcu的lua固件,MicroPython也提供了一个简单的文件系统用来存代码。并自动在开机时执行:

boot.py

main,py

两个文件

windows用户的话,推荐一个软件:uPyLoader界面如下

可以看到,左边是本地的文件,右边是ESP8266的文件,两边可以互相传输,也可以删除上边的文件,其他功能自行探索,这个软件自带了一个编辑器,不过很弱。

还是推荐用vim或者vscode来写代码,然后用这个软件把代码传进去。

测试代码么,先来个循环:

importtimeimportmicropythondefloop1():

t1=t2=0for i in range(5):

t1=time.ticks_us()for i in range(100):passt2=time.ticks_us()print(t2-t1)

time.sleep(2)

loop1()

默认工作在80MHZ下,结果是:

=== with open("test_loop.py") as f:

=== exec(f.read(), globals())

===

4715

4695

4742

4698

4697

>>>

脚本确实不快,100次循环足足用了4.5ms,即使把速度调成160MHZ,也就2.5ms左右也就一次循环25us左右,而ESP32下速度就很赞了:

paste mode; Ctrl-C to cancel, Ctrl-D to finish

=== with open("test_loop.py") as f:

=== exec(f.read(), globals())

===

346

262

274

267

278

>>>

10多倍的提速2us-3us循环一次,甚至可以写dht11那样的时序驱动了。esp8266就没办法了吗?当然有!

MicroPython官方文档上专门有篇代码提速的文章,其中提到了可以用装饰器micropython.native micropython.viper来给代码打鸡血(编译成机器码)

import time

import micropython

@micropython.native

def loop1():

t1=t2=0

for i in range(5):

t1=time.ticks_us()

for i in range(100):

pass

t2=time.ticks_us()

print(t2-t1)

time.sleep(2)

loop1()

加了个@micropython.native装饰器,速度立马鸡血:

paste mode; Ctrl-C to cancel, Ctrl-D to finish

=== with open("test_loop.py") as f:

=== exec(f.read(), globals())

===

326

320

320

320

320

>>>

赶上esp32了有木有?那……esp32用这个得多快?不好意思,esp32这功能还没弄好,哈哈

另一个装饰器的例子:

import time

import micropython

@micropython.viper

def loop1():

t1=0

t2=0

for i in range(5):

t1=int(time.ticks_us())

for i in range(100):

pass

t2=int(time.ticks_us())

print(t2-t1)

time.sleep(2)

loop1()

结果:

paste mode; Ctrl-C to cancel, Ctrl-D to finish

=== with open("test_loop.py") as f:

=== exec(f.read(), globals())

===

51

51

50

51

51

>>>

这就更碉堡了,又提升了6倍,都快接近100倍了,虽然需要改一点点代码才能过,继续期待esp32的这功能吧

另外还有个插入汇编的功能,就不试了。

micropython和python区别-MicroPython入坑记(三)板子上的Python到底有多快?相关推荐

  1. Vue React Angular之三国杀,web前端入坑第六篇 上

    「 懒癌引发血案 」 目前前端技术栈发生了翻天覆地的变化,上篇刚写了只会jquery 要失业,再不学新的你就要被淘汰,虽然有点危言耸听,不过现实情况确实是这样. vue.react.angular对比 ...

  2. Vue、React、Angular之三国杀,web前端入坑第六篇(上)

    「 懒癌引发血案 」 目前前端技术栈发生了翻天覆地的变化,上篇刚写了只会jquery 要失业,再不学新的你就要被淘汰,虽然有点危言耸听,不过现实情况确实是这样. vue.react.angular对比 ...

  3. ubuntu安装python百度经验_如何在Ubuntu 20.04上安装Python 3.9(含python编译安装和使用Apt命令安装)...

    在本文中,我们将向您展示在Ubuntu 20.04上安装Python 3.9的两种方法.第一种使用APT命令安装Python3.9,第二种是在Ubuntu20.04上编译安装Python 3.9.本教 ...

  4. micropython和python区别-MicroPython简介

    下面是网上关于MicroPython的介绍. Damien George是一名计算机工程师,他每天都要使用Python语言工作,同时也在做一些机器人项目.有一天,他突然冒出了一个想法:能否用Pytho ...

  5. micropython和python区别-MicroPython与Python速度对比

    首先说明,micropython跟python是没有任何可比性的,python作为一种通用的语言,在扩展性上不是micropython能比的,比如大量的库,可以方便的用C语言加模块提升速度,有pypy ...

  6. python web-python web入坑指南

    原标题:python web入坑指南 Invest regularly in your knowledge portfolio. Make learning a habit. 自学python web ...

  7. python matlablib安装踏坑记

    本文主要是记录在linux下安装matlablib中所遇到的坑,给大家一个参考. 我的使用场景是  linux + python2.7 + django 1.10 + matlib 坑1:matlab ...

  8. Win10安装安卓模拟器入坑记

    笔记本换了硬盘,安装Win10之后,装了一堆软件和工具,包括Docker for Windows等,然后打算安装一个安卓模拟器.之前一直用的逍遥,也没碰到啥问题,这次就打算仍然用它.没想到开始入坑了: ...

  9. I5 4590 台式机安装黑苹果再次入坑记(2019.12.23)

    本来以为有2017年那次安装经验,现在还不手到擒来?可没想到时隔两年,再次入坑了.特此记录以备新手少走弯路,自己用来以后借鉴. 机器配置和以前一样,只不过多加了一个N卡,一个8G内存条. 本次安装为苹 ...

  10. PyTorch入坑(一)~(三): Tensor的概念,基本操作和线性回归

    PyTorch 一文入门 PyTorch 入坑一:数据类型与Tensor的概念 PyTorch数据类型 Tensor的概念 Tensor与Variable Variable Tensor Tensor ...

最新文章

  1. WebApi2官网学习记录---异常处理
  2. 计算机性能指标ppt,计算机网络分类与主要性能指标.ppt
  3. 用python爬取一个人所有信息_python实战===爬取所有微信好友的信息
  4. 2014-04-03研究笔记整理
  5. pivot 用order by 语句排序时,老是超时的解决办法,超Easy
  6. AI自动P图:maskrcnn+inpaintting消除并修复指定区域图像
  7. LDA 线性判别分析模型
  8. C. Barcode dp
  9. C++ 字符串指针和字符串指针数组详解
  10. Android视频: YUV转RGB
  11. php面向对象封装mysql_PHP mysqli 扩展库(面向对象/数据库操作封装/事务控制/预编译)...
  12. python安装whl文件的注意事项(windows系统)
  13. ffmpeg文档7:快进快退
  14. sigmoid函数及其图像绘制
  15. CC2500模块移植说明
  16. 安装VMwareTools
  17. Word 无法创建工作文件 请检查临时环境变量 解决方法
  18. 计算机开机后无法网络拨号怎样处理,电脑不能拨号上网显示调制解调器已删除怎么办...
  19. C#:Krypton控件使用方法详解(第十四讲) ——kryptonSeparator
  20. 街头摄影99%是失败的,但他成功了!

热门文章

  1. Metabase在linux二次开发编译环境搭建(之一---下载文件)
  2. 1.docker学习
  3. Spark Streaming ReceiverTracker架构设计
  4. 再读headfirst-原则与模式摘录
  5. Time flies
  6. 2008年度最佳开源CMS大奖赛开幕
  7. UVA10375 POJ2613 ZOJ1863 Choose and divide【组合计算+迭代】
  8. AOJ0008 Sum of 4 Integers【暴力】
  9. HDU1715 大菲波数【大数】
  10. CCF201312-4 有趣的数(100分)