目录

引言

对FPIOA的理解

与FPIOA相关的函数

引言

当我在看MaixPy官方手册的时候,我总觉得这个IO配置有点奇怪,首先我们看一下官方资料的点灯代码。

from fpioa_manager import fm
from Maix import GPIOio_led_red = 13
fm.register(io_led_red, fm.fpioa.GPIO0)led_r=GPIO(GPIO.GPIO0, GPIO.OUT)
led_r.value(0)

其中关于fm.register(io_led_red,fm.fpioa.GPIO0)官方解释如下

我产生了疑问,为什么要区别GPIO(外设)和管脚的区别。由于我先接触的51和32单片机,对于管脚和外设的的概念在我的认知中应该是联系在一起的,但是这里却让我们分开,所以说FPIOA和与32与51中管脚与外设的对应关系是不同的。

对FPIOA的理解

我们该如何理解FPIOA呢?

首先要把管脚和外设的概念分开。也就是单拿出一个管脚号并不代表任何外设,拿出一种外设也不对应任何一个管脚。

既然外设和管脚没有一一对应关系,那我们怎么让管脚对应上外设呢?就是靠我们用户对其进行编程,赋予管脚相应的外设的功能。下面拿官方的图来为大家讲解一下。

首先看上图第6、7脚被赋予了外设IIC,第8、9管脚则没有赋予任何功能。这个功能的赋予可以随时取消或者更换,所以如下图我可以将第6、7、8管脚赋予SPI外设的功能。

       
        也就是说芯片的第67脚可以配置成为IIC,也可以释放重新配置为678脚的SPI外设。这意味这我们对这个芯片的每个引脚的绝对掌控。

FPIOA相关的函数

(一)fpioa_manager模块:简称fm,该模块用于注册芯片内部功能和引脚,帮助用户管理内部功能和引脚映射关系的功能模块。

from fpioa_manager import fm

1register(pin, func, force=True)配置管脚外设函数

    pin:功能映射引脚

    funcfunction):芯片外设名

    force:强制分配,如果为True,则可以多次对同一个引脚注册;False则不允许同一引脚多次注册。默认为True是为了方便IDE多次运行程序使用

函数功能:设置pin(脚)对应的func(芯片功能)默认启用强制绑定参数(force=True),它将强制更换指定的引脚功能,如果发现存在上一个绑定的引脚,则会发出一个警告,但不影响代码继续执行。如果设置 force=False ,则会在 register 发现硬件功能已经被使用了,此时就会弹出异常,方便深度开发的时候不清楚 GPIO/HS 的分配情况,常见于运行某个代码的按键在访问某些功能的时候不能使用了的场合。

2unregister(pin)释放管脚外设函数

   pin:功能映射引脚

函数功能:释放引脚(pin)上的硬件功能(GPIO/I2C/SPI/I2S/UART)。

3get_pin_by_function(pin)获取绑定管脚的外设功能

 pin:功能映射引脚

函数功能:获取引脚(pin)上绑定的硬件功能。

4get_gpio_used()获取所有 gpio 的使用情况,它只查询 GPIOHS / GPIO 的引脚分配情况, None 表示该硬件功能未被使用。

5help()打印外设表

(二)FPIOA模块

from Maix import FPIOA

1、help(func)显示外设及其简要描述

func:芯片外设名

2、set_function(pin, func)设置引脚对应外设功能

   pin: 引脚编号取值[0,47],具体引脚看电路图 也可以使用 board_info. 然后按 TAB 按键补全来获得板子的常用引脚,比如 board_info.LED_G

   func: 外设功能,传一个整型值,可以通过 fm.fpioa.help()获得

3get_Pin_num(func)获取外设被分配到了哪个管脚

func芯片外设名

【K210学习基于MaixPy】FPIOA现场可编程IO阵列的理解与相关函数运用相关推荐

  1. 【K210学习笔记】#MaixPy#(3)人脸检测与人脸识别

    目录 一.人脸检测: 1.烧录模型: 2.示例测试: 二.人脸识别: 1.获取机器码: 2.获取人脸识别模型: 3.烧录专用固件: 4.烧录模型: 5.示例测试: 6.报错解决: 一.人脸检测: 1. ...

  2. 解释任何ML模型?--关于XAI的目标和能;基于梯度的动态RRAM阵列神经形态学习;SARNet:大规模城市点云的语义增强注册;基于加权一致性指数损失的多模式生存模型在鼻咽癌放疗放射性脑病评估中的应用

    可解释的机器学习 中文标题:解释任何ML模型?–关于XAI的目标和能力 英文标题:Explaining Any ML Model? – On Goals and Capabilities of XAI ...

  3. 高速固态存储卡学习资料第701篇:基于6U VPX XC7V690T的阵列M.2高速固态存储卡

    基于6U VPX XC7V690T的阵列M.2高速固态存储卡 一.板卡概述 基于6U VPX的阵列M.2高速固态存储卡自主研发的完全满足NVME存储规范的高性能数据存储应用平台,平台基于FPGA核心处 ...

  4. K210学习记录(2)——UART(串口)

    0.引言 本系列博客仅作为本人学习K210单片机的学习记录,主要学习其内部资源使用,作为初学者难免有错误之处,如有发现还望指出. 硬件:Sipeed Maix Dock开发板(推荐官方KD233开发板 ...

  5. 【K210】K210学习笔记五——串口通信

    [K210]K210学习笔记五--串口通信 前言 K210如何进行串口通信 K210串口配置 K210串口发送相关定义 K210串口接收相关定义 K210串口发送接收测试 完整源码 前言 本人大四学生 ...

  6. 5分钟学习基于Go,go-microservice-template,Minke的微服务

    本文讲的是5分钟学习基于Go,go-microservice-template,Minke的微服务,[编者的话]本篇文章介绍了Go语言下构建微服务的例子,作者利用一个helloword讲解了如何使用他 ...

  7. 【K210】K210学习笔记七——使用K210拍摄照片并在MaixHub上进行训练

    [K210]K210学习笔记七--使用K210拍摄照片并在MaixHub上进行训练 前言 K210准备工作 K210如何拍摄照片 准备工作 拍摄相关代码定义 用K210拍摄到的照片在MaixHub平台 ...

  8. K210学习笔记(三) K210与STM32进行串口通信,K210发STM收

    文章目录 前言 一.以/r/n为结尾 二.K210端代码 三.STM32端 3.1 main函数 四.测试结果 4.1当收到1时 4.2当收到2时 4.3 测试视频 总结 前言 前面我们讲了STM32 ...

  9. 基于hexo使用github.io免费域名搭建个人博客记录

    基于hexo使用github.io免费域名搭建个人博客记录 说明,学习的时候,看的是这篇链接https://blog.csdn.net/sinat_37781304/article/details/8 ...

最新文章

  1. 如何提高强化学习效果?内在奖励和辅助任务
  2. 老李推荐:第6章1节《MonkeyRunner源码剖析》Monkey原理分析-事件源-事件源概览 1...
  3. CentOS各个版本镜像下载地址
  4. 连接mongoDB根据ObjectID写入json数据(初步)
  5. 信号与线性系统分析第4版吴大正课后习题答案
  6. 冰点下载器手机版apk_冰点文库下载器
  7. 简单html倒计时器代码,js简单倒计时实现代码
  8. stringify中文乱码?
  9. 贾跃亭个人破产内幕曝光 差一点获得中东土豪投资
  10. 施努卡:什么是视觉定位系统 视觉定位系统的工作原理
  11. java解决合并两个有序链表问题
  12. MySQL 安装 5.0
  13. 学习《医学三字经白话解》之医学源流+中风
  14. OJ 2530: 小勇玩lol
  15. 小米运维部14年校招笔试题A的个人答案
  16. SQL server已更新或删除的行值要么不能使该行成为唯一行,要么改变了多个行(2行)
  17. 《MySQL系列-开发相关》MySQL新建数据库表并存储2010年到2030年的日期
  18. TreeMap与TreeSet(初步了解)
  19. 牛客练习赛72-Abrz的杯子brz的雪糕
  20. 【诺贝尔物理奖量子纠缠】启发:命由我作,福由我求

热门文章

  1. 《高等统计物理学》1:领悟系综
  2. PHP将带有下划线多元数组键值转为驼峰式
  3. 纯CSS3实现3D动画导航,html5 webRTC技术实现免费网页电话拨打
  4. 奇异值分解——matlab中svd函数用法总结
  5. 一次小模块的使用过程-LC12S无线模块介绍
  6. 基于Cortex-M3内核和STMF03系列微控制器的系统设计与开发
  7. 数据分析(一)百度指数,代码如下:
  8. wordVBA运行时错误‘4198‘:应用程序定义或对象定义错误 解决方法
  9. Facebook libra白皮书
  10. 做项目经理太累太辛苦,每天开不完的会议,还不如纯粹编写代码