micropython文件上传软件_MicroPython

webchat.jpg

文件结构

官方固件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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值