查看: 98|回复: 0

[Maixduino AI开发板] 【天天向上】Maixduino AI 开发板试用(四)GPIO

[复制链接]
本帖最后由 云天 于 2020-7-13 14:55 编辑

【测试背景】
Maixduino是一款基于Kendryte K210 RISC-V AI处理器、基于Arduino UNO形式并且板载ESP32 Wi-Fi 和蓝牙模块以及M1 AI模块的AI开发板。而且接口与Arduino UNO兼容,包括数字IO口,PWM,I2C,UART,6个模拟输入引脚。
注意Arduino UNO R3 外形和引脚兼容 ,但是电平不兼容, Arduino采用5V,Maixduino 引脚都是3.3V或者1.8V, 所有引脚均不支持5V耐受。
【遇到问题】
https://maixpy.sipeed.com/zh/get_started/led_blink.html点亮 LED MaixPy 所使用的硬件 K210 的片上外设(比如GPIO、I2C等)对应的引脚是可以任意映射的,STM32 片上外设和引脚对应关系已经固定了, 只有部分引脚可以复用, 相比之下 K210 自由度更大。
代码:
[Python] 纯文本查看 复制代码
from fpioa_manager import *
from Maix import GPIO

fm.register(board_info.LED_R, fm.fpioa.GPIO0)

led_r=GPIO(GPIO.GPIO0,GPIO.OUT)
led_r.value(0)

其中, 我们先从包 Maix 导入了 GPIO 这个类;
前面说了 K210 的引脚可以任意设置, 所以我们使用fm(fpioa manager)这个内置的对象来注册芯片的外设和引脚的对应关系, 这里 fm.fpioa.GPIO0 是 K210 的一个 GPIO 外设(注意区分 GPIO(外设) 和引脚(实实在在的硬件引脚)的区别 ), 所以把 fm.fpioa.GPIO0 注册到了 引脚 board_info.LED_R;
这里的 board_info 是一个板子信息的类, 可以在串口终端输入 board_info. 然后按 TAB 按键可以看到所有成员,主要是各个引脚值,也可以直接传引脚号,比如13,实际情况根据开发板的电路图而定
然后定义一个 GPIO 对象, 具体参数看 GPIO 模块的文档, 在左边侧边栏查找。
使用 led_r.value(0) 或者 led_r.value(1) 来设置高低电平即可。

我在串口终端输入 board_info. pin_map():
10.jpg

board_info.LED_R对应PIN(14)即下图“IO14”
1-P-0xsmw-nG6texhdciqCWA-1024x760.png

那么“14”对应UNO的哪个引脚?这个问题困扰了两天。
1583964757-234113-13.jpeg

【一图解决】
迎来曙光,今天才看到下面这个图,一切迎刃而解。
1-ozOtXD5wp7tFZmLhKNlmHA.png

board_info.LED_R=IO14=UNO(8)
所以LED正极插入Maixduino板上的引脚“8”。
IMG_20200713_131414.jpg


IMG_20200713_131350.jpg

【循环点亮】
[Python] 纯文本查看 复制代码
from machine import Timer,PWM
import time,utime
from Maix import FPIOA, GPIO
from fpioa_manager import fm
from board import board_info

fm.register(board_info.LED_R,fm.fpioa.GPIO0)
led_r=GPIO(GPIO.GPIO0,GPIO.OUT)
while(1):
 utime.sleep_ms(500)
 led_r.value(1)
 utime.sleep_ms(500)
 led_r.value(0)
fm.unregister(board_info.LED_R,fm.fpioa.GPIO0)


高级模式
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2020 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail