4787| 7
|
【天天向上】Maixduino AI 开发板试用(四)GPIO |
本帖最后由 云天 于 2021-11-8 22:05 编辑 【测试背景】 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 自由度更大。 代码:
其中, 我们先从包 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.LED_R对应PIN(14)即下图“IO14” 那么“14”对应UNO的哪个引脚?这个问题困扰了两天。 【一图解决】 迎来曙光,今天才看到下面这个图,一切迎刃而解。 board_info.LED_R=IO14=UNO(8) 所以LED正极插入Maixduino板上的引脚“8”。 【循环点亮】
|
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): time.sleep_ms(500) led_r.value(1) time.sleep_ms(500) led_r.value(0) fm.unregister(board_info.LED_R,fm.fpioa.GPIO0) utime改成time试一下,我这两个都可以 |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed