文件结构

官方固件1

2/

boot.py

_boot.py在文件系统中不可见(在MicorPython中称为internal frozen modules,也就是编译好的内部模块)。这个模块主要完成的功能包括创建/加载文件系统,在首次启动时初始化网卡配置等。不建议对这个模块进行任何变动。

MicroPython启动之后首先执行boot.py文件,此文件是由MicroPython系统自己创建的,除非很了解micropython,否则不要修改此文件;

紧接着会执行main.py文件,由用户自己创建。没有此文件,启动会报错OSError: [Errno 2] ENOENT;

不要将大量代码写入main.py文件,将要完成的功能分模块写于多个文件中。

EMP1

2

3

4

5/

boot.py # 启动代码

lib/

config/

最佳实践

写中断处理程序尽可能短和简单;

避免内存分配:没有添加到列表或插入字典,没有浮点数。

使用 micropython.schedule 解决上述约束.

如果一个ISR返回多字节,使用预先分配的bytearray. 如果ISR和主程序共享多字节整数,请使用array (array.array).1

2

3

4

5

6

7

8

9

10

11

12

13

14

15The simplest means of doing this is via one or more shared data objects, either declared as global or shared via a class。

import pyb, micropython

micropython.alloc_emergency_exception_buf(100)

class Foo(object):

def __init__(self, timer, led):

self.led = led

timer.callback(self.cb)

def cb(self, tim):

self.led.toggle()

red = Foo(pyb.Timer(4, freq=1), pyb.LED(1))

green = Foo(pyb.Timer(2, freq=0.8), pyb.LED(2))

The use of instance methods confers two benefits. Firstly a single class enables code to be shared between multiple hardware instances. Secondly, as a bound method the callback function’s first argument is self. This enables the callback to access instance data and to save state between successive calls.

The MicroPython library I/O methods usually provide an option to use a pre-allocated buffer.

进入中断程序之后,先disable中断,处理完之后,再enable中断。

Allocate an emergency exception buffer。在中断处理程序中加入以下代码,调试会变简单。1

2import micropython

micropython.alloc_emergency_exception_buf(100)

最大化microPython速度

上传下载文件使用webrepl上传和获取文件。

特有模块

EMP-1ZLAB

EasyMicroPython(EMP) IDE 是由1Z实验室引导的一个开源项目,旨在为MicroPython社区提供更高效便捷的开发体验。EMP IDE受到了MicroPython/webrepl 项目的启发,采用了其现有的通信协议,并对webrepl模块进行了改造,设计并实现了一些功能模块,以此来通过WebSocket实现和MicroPython设备的更丰富,更高效的信息交互。

MACHINE

允许你直接和无限制地使用硬件模块。

所有的回调方法都应该在中断上下文中

CLASS

ADC1

2

3

4

5

6

7

8

9

10

11

12

13class .ADC(id=0, *, bits=12) 使用指定的GPIO口创建ADC实例或不指定

# ADC.channel(id, *, pin) ESP32的ADC没有这个方法

# ADC.init() ESP32的ADC没有这个方法

# ADC.deinit() ESP32的ADC没有这个方法

ADC.read() 读取一次采样值

# 设置D34号引脚作为ADC采样引脚

pin_read = Pin(34,Pin.IN)

adc = ADC(pin_read)

# 设置衰减比 满量程3.3v

adc.atten(ADC.ATTN_11DB)

# 设置数据宽度为10bit

adc.width(ADC.WIDTH_10BIT)

PIN

SIGNAL

TimerPROPERTY

名称

类型

描述

Timer.PERIODIC

周期执行

Timer.ONE_SHOT

只执行一个,执行完了定时器就结束

UART1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22class machine.UART(id, ...)

id 给定的id(即串口号)

UART.init(baudrate=9600, bits=8, parity=None, stop=1, *, ...)

baudrate 波特率

bits 位数

parity 极性

stop 停止位

tx 指定发送的引脚(即GPIO号)

rx 制定接收的引脚(即GPIO号)

txbuf 指定发送的缓冲区大小

rxbuf 指定接收的缓冲区大小

UART.deinit() 关闭串口

UART.any() 非阻塞地返回可以读的字符数目,有可能返回1,但是有多于1的字符

UART.read([nbytes]) 读取指定数目的字符,不指定则尽可能多读

UART.readline() 读取一行

UART.write(buf) 写数

UART.sendbreak()

UART.irq(trigger, priority=1, handler=None, wake=machine.IDLE) 创建一个回调当有数接收时

trigger 只能是UART.RX_ANY

priority 优先级(1-7)

handler 回调函数(1-8个字节)

wake 只能是machine.IDLE

NETWORK

CLASS

WLAN

WIFI驱动

METHODS

名称

示例

描述

activate([is_active])

connect(ssid=None, password=None, *, bssid=None)

connect(‘ssid’,’password’)

只有客户端模式才允许连接

PROPERTY

名称

类型

描述

STA_IF

WLAN参数

连接到上游的wifi热点

AP_IF

WLAN参数

wifi热点,允许设备连接

METHODS

UPIP

microPython的包管理

REPL

Ctrl + A

进入RAW REPL

Ctrl + B

进入NORMAL REPL

Ctrl + C

中断程序

如果没有出现”>>>”可以使用

Ctrl + D

软复位板子

Ctrl + E

进入paste模式

使用AMPY1

2

3

4

5pip install adafruit-ampy --upgrade

上传文件

ampy --port /dev/ttyUSB0 put main.py

删除文件

ampy --port /dev/ttyUSB0 rm main.py

micropython文件上传软件_MicroPython相关推荐

  1. micropython文件上传软件_ESP32玩转MicroPython(二) 连接WIFI网络 webperl文件传输

    零. ESPlorer到底怎么用? 1. 交互命令行模式 发一句回一句, 在下面发就行了 2. 发送代码块 发送代码块到ESP32 这样代码块就存入了esp32的内存中, 比如上面, 我们存入了一个 ...

  2. gz文件解压命令 linux_linux常用命令和文件上传(FZ)、解压、配置环境变量(JDK)

    第141次(Linux) 学习主题:Linux 学习目标: 掌握Linux常用命令 一.Linux常用命令 1-cd命令 change directory – 切换目录 特殊目录符号 :当前目录 –' ...

  3. windows上软件上传至linux上,《如何将windows上的软件包或文件上传到linux服务上》...

    如何将windows上的软件包或文件上传到linux服务上,下一句就是如何让将linux的文件下载到win上.哈哈 方法不止这一种,有超多的方法,要是虚拟机,它自带的有share这个选项,你可以点击v ...

  4. esp8266 刷 MicroPython固件,并使用MicroPython File Uploader python文件上传工具上传python文件

    1.使用模块esp8266 2.进入固件官网:https://micropython.org/download/esp8266/ 3.将下载的esp8266-20220618-v1.19.1.bin放 ...

  5. FTP服务器的搭建与使用FTP软件进行文件上传

    使用工具:VMware pro,windows server 2008 r2系统镜像文件 1.新建虚拟机,两个模式都可以创建 1.新建一个空白系统. 1.选择操作系统 2.选择操作系统版本 1.配置w ...

  6. linux 安装上传文件,linux常用命令(二)文件上传下载及软件安装

    1.上传下载工具安装 (1)WINDOWS 到linux的文件上传及下载: windows下打开secureCRT,通过SSH连到⾄至远程linux主机: 上传下载工具安装命令:yum -y inst ...

  7. 软件测试之ios自动化——文件上传

    一个完整的自动化工具,自动提单是非常重要的一环,bug单可以作为衡量自动化工具的产出指标,可以直接说明该自动化工具的价值.而提单离不开文件上传,接下来详细介绍一下ios的文件上传. ios文件上传可以 ...

  8. 织梦Dede上传软件提示“你指定要上传的文件或文件大小超过限制”的解决办法

    织梦DedeCMS提示"你指定要上传的文件或文件大小超过限制"的解决办法 时间:2014-09-28 来源:互联网 作者:网络 阅读:1598次 如图所示,出现此情况的原因主要如下 ...

  9. ASP.NET 应用中大文件上传研究

    在项目中经常要用到了大文件上传,要上传的文件有100多m,于是研究现在国内使用的大文件上传的组件发现用的比较多的有两个控件AspnetUpload 2.0和Lion.Web.UpLoadModule, ...

  10. [C# 网络编程系列]专题十一:实现一个基于FTP协议的程序——文件上传下载器...

    引言: 在这个专题将为大家揭开下FTP这个协议的面纱,其实学习知识和生活中的例子都是很相通的,就拿这个专题来说,要了解FTP协议然后根据FTP协议实现一个文件下载器,就和和追MM是差不多的过程的,相信 ...

最新文章

  1. 计算机二级申请创新学分理由,创新学分申请书范文
  2. Study on Android【三】--Intent消息传递
  3. linux系统无法用命令行,无法在Linux操作系统上从命令行启动Kitchen Pentaho作业
  4. wxWidgets:wxCloseEvent类用法
  5. 确认!别再相信Python了! 程序员:就你敢说...
  6. linux中umask的使用
  7. 图论 —— 图的连通性 —— Kosaraju 算法
  8. 第4.17章读书笔记
  9. (转)Linux传输大文件(分割传输)
  10. K近邻模型(k-NN)
  11. 叮咚智管-智慧物业管理系统
  12. 岗位:unity中级工程师
  13. MySQL中count是怎样执行的?———count(1),count(id),count(非索引列),count(二级索引列)的分析
  14. 推荐系统序列化建模总结
  15. 收费企业邮箱有哪些?哪个收费邮箱最好
  16. uni-app实现支付及项目打包上传
  17. NVIDIA显卡驱动的安装失败
  18. python用opencv实现图片的美白磨皮_12 - OpenCV+TensorFlow 入门人工智能图像处理-磨皮美白-多智时代...
  19. 全网首发:relocation R_X86_64_PC32 against symbol can not be used when making a shared object recompile
  20. 维基解密说会帮科技公司解决漏洞 可后者并不买账

热门文章

  1. java CopyOnWriteArrayList的使用
  2. named 委派与转发
  3. 16进制颜色与UIColor互转
  4. AWK学习笔记四:awk的环境变量
  5. matlab数字信号处理 王彬 pdf,MATLAB数字信号处理
  6. python selenium p_使用Python和Selenium,如何从包含
  7. PHPMailer 报错:SMTP ERROR: Password command failed: 535 Login Fail
  8. Win10安装python扩展的几种方式
  9. RabbitMQ的任意延迟队列
  10. 全网首发:使用安卓MediaCodec Encoder进行编码时的方向问题