【雕爷学编程】MicroPython动手做(04)——零基础学MaixPy之尝试运行2

​6、引脚索引

#MicroPython动手做(04)——零基础学MaixPy之基本示例

#程序之六:引脚索引

#MicroPython动手做(04)——零基础学MaixPy之基本示例
#程序之六:引脚索引

from board import board_info

wifi_en_pin = board_info.WIFI_EN
print(wifi_en_pin)#输出为8
board_info.pin_map()#打印所有
board_info.pin_map(8)#只打印8号引脚的信息

在这里插入图片描述

board_info内置库

主要用于方便用户使用开发板引脚配置,其中内置了对人友好的命名及接口,可以使用户减少对电器连接原理图的依赖。是内部定义的一个 Board_Info 全局变量, 使用 MicroPython 语法编写。

引脚索引

主要是将数字转换为人类友好的字符串,让用户方便编程。输入以下,请注意不要忽略 . 号,然后按下 tab键 进行补全,可以看到板级相关的引脚功能

board_info.

比如

输入以下代码,将返回数字 8,代表的是开发板的第8号引脚,其电器连接是wifi模块的使能引脚

board_info.WIFI_EN

查找方法

当用户不清楚引脚电器连接时,可以使用该方法查找

board_info.pin_map(pin_num)

参数

该方法不传入参数或者传入一个参数

pin_num: 引脚编号,范围[6,47]

当不传入参数时,将打印所有引脚的板级电气连接信息,传入参数时,仅打印指定引脚的板级电气连接信息。

7、定时3秒后打印信息
#MicroPython动手做(04)——零基础学MaixPy之基本示例
#程序之七:定时3秒后打印信息

#MicroPython动手做(04)——零基础学MaixPy之基本示例
#程序之七:定时3秒后打印信息

from machine import Timer

def on_timer(timer):
    print("time up:",timer)
    print("param:",timer.callback_arg())

tim = Timer(Timer.TIMER0, Timer.CHANNEL0, mode=Timer.MODE_ONE_SHOT, period=3000, callback=on_timer, arg=on_timer)
print("period:",tim.period())

在这里插入图片描述

machine.Timer函数

硬件定时器,可以用来定时触发任务或者处理任务,设定时间到了后可以触发中断(调用回调函数),精度比软件定时器高。 需要注意的是,定时器在不同的硬件中可能会有不同的表现。

MicroPython 的 Timer 类定义了在给定时间段内(或在一段延迟后执行一次回调)执行回调的基本操作,并允许特定的硬件上定义更多的非标准行为(因此不能移植到其他板)。

共有 3 个定时器, 每个定时器有 4 个通道可以使用。

参数

id: Timer ID, [0~2] (Timer.TIMER0~TIMER2)

channel: Timer 通道, [Timer.CHANNEL0~Timer.CHANNEL3]

mode: Timer 模式, MODE_ONE_SHOT 或者 MODE_PERIODIC 或者 MODE_PWM

period: Timer 周期, 在启动定时器后 period 时间, 回调函数将会被调用,(0,~)

unit: 设置周期的单位,默认位毫秒(ms),Timer.UNIT_S 或者 Timer.UNIT_MS 或者 Timer.UNIT_US 或者Timer.UNIT_NS

callback: 定时器回调函数, 定义了两个参数, 一个是定时器对象Timer, 第二个是在定义对象是希望传的参数arg,更多请看arg参数解释

注意:回调函数是在中断中调用的,所以在回调函数中请不要占用太长时间以及做动态分配开关中断等动作

arg: 希望传给回调函数的参数,作为回调函数的第二个参数

start: 是否在对象构建成功后立即开始定时器, True:立即开始, False:不立即开启,需要调用start()函数来启动定时器

priority: 硬件定时器中断优先级, 与特定的CPU相关, 在K210中,取值范围是[1,7], 值越小优先级越高

div: 硬件定时器分频器,取值范围[0,255], 默认为0, clk_timer(定时器时钟频率) = clk_pll0(锁相环0频率)/2^(div+1)

clk_timer*period(unit:s) 应该 < 2^32 并且 >=1

8、每隔 1 秒打印消息, 停止 5 秒后再重启, 5 秒后关闭并注销定时器

#MicroPython动手做(04)——零基础学MaixPy之基本示例

#程序之八:每隔 1 秒打印消息, 停止 5 秒后再重启, 5 秒后关闭并注销定时器

#MicroPython动手做(04)——零基础学MaixPy之基本示例
#程序之八:每隔 1 秒打印消息, 停止 5 秒后再重启, 5 秒后关闭并注销定时器

import time
from machine import Timer

def on_timer(timer):
    print("time up:",timer)
    print("param:",timer.callback_arg())

tim = Timer(Timer.TIMER0, Timer.CHANNEL0, mode=Timer.MODE_PERIODIC, period=1, unit=Timer.UNIT_S, callback=on_timer, arg=on_timer, start=False, priority=1, div=0)
print("period:",tim.period())
tim.start()
time.sleep(5)
tim.stop()
time.sleep(5)
tim.restart()
time.sleep(5)
tim.stop()
del tim

在这里插入图片描述

machine.Timer
硬件定时器,可以用来定时触发任务或者处理任务,设定时间到了后可以触发中断(调用回调函数),精度比软件定时器高。 需要注意的是,定时器在不同的硬件中可能会有不同的表现。MicroPython 的 Timer 类定义了在给定时间段内(或在一段延迟后执行一次回调)执行回调的基本操作,并允许特定的硬件上定义更多的非标准行为(因此不能移植到其他板)。共有 3 个定时器, 每个定时器有 4 个通道可以使用。

常量

TIMER0: Timer0 id

TIMER1: Timer1 id

TIMER2: Timer2 id

CHANNEL0: Timer 通道 0

CHANNEL1: Timer 通道 1

CHANNEL2: Timer 通道 2

CHANNEL3: Timer 通道 3

MODE_ONE_SHOT: Timer 只运行一次(回调一次)

MODE_PERIODIC: Timer 始终运行(连续回调)

MODE_PWM: 定时器不用来回调函数,用以产生PWM

UNIT_S: 单位秒 (s)

UNIT_MS: 单位毫秒 (ms)

UNIT_US: 单位微秒 (us)

UNIT_NS: 单位纳秒 (ns)

9、SPI 基本读写
MicroPython动手做(04)——零基础学MaixPy之基本示例

#程序之九:SPI 基本读写

#MicroPython动手做(04)——零基础学MaixPy之基本示例
#程序之九:SPI 基本读写

from machine import SPI

spi1 = SPI(SPI.SPI1, mode=SPI.MODE_MASTER, baudrate=10000000, polarity=0, phase=0, bits=8, firstbit=SPI.MSB, sck=28, mosi=29, miso=30, cs0=27)
w = b'1234'
r = bytearray(4)
spi1.write(w)
spi1.write(w, cs=SPI.CS0)
spi1.write_readinto(w, r)
spi1.read(5, write=0x00)
spi1.readinto(r, write=0x00)

在这里插入图片描述

machine.SPI
SPI(Serial Peripheral Interface) 是一个同步串行协议,由主机和从机组成。

标准4线模式由 SCK(SCLK), CS(片选), MOSI, MISO 4条线连接主从机

在 K210 上, SPI 有一下特征:
共有 4 个 SPI 设备, 其中 SPI0 、SPI1、 SPI3 只能工作在主机模式下, SPI2 只能工作在从机模式时下, 在 MaixPy 上, SPI3已经用来连接了 SPI Flash, 暂时保留, 以后如果有必要再考虑开放接口与 SPI Flash 分时复用
支持 1/2/4/8 线全双工模式, 在 MaixPy 中, 目前只支持标准(摩托罗拉)4线全双工模式(即 SCK, MOSI, MISO, CS 四个引脚)
最高传输速率45M
支持DMA
4个可配置任意引脚的硬件片选

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

驴友花雕

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

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

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

打赏作者

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

抵扣说明:

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

余额充值