【正点原子K210连载】第十四章 按键输入实验 摘自【正点原子】DNK210使用指南-CanMV版指南

1)实验平台:正点原子ATK-DNK210开发板
2)平台购买地址https://detail.tmall.com/item.htm?id=731866264428
3)全套实验源码+手册+视频下载地址: http://www.openedv.com/docs/boards/xiaoxitongban

第十四章 按键输入实验

本章实验将介绍如何使用CanMV让Kendryte K210获取板载按键的状态。通过本章的学习,读者将学习到在CanMV下读取Kendryte K210的GPIO上的高低电平状态。
本章分为如下几个小节:
14.1 maix.GPIO模块介绍
14.2 硬件设计
14.3 程序设计
14.4 运行验证

14.1 maix.GPIO模块介绍
有关maix.GPIO模块的介绍,请见第12.1小节《maix.GPIO模块介绍》。
14.2 硬件设计
14.2.1 例程功能

  1. 当KEY0按键被按下后,双色LED的红灯亮起,反之熄灭
  2. 当KEY1按键被按下后,双色LED的蓝色亮起,反之熄灭
  3. 当KEY2按键被按下后,蜂鸣器发声,反之不发声
    14.2.2 硬件资源
  4. 双色LED
    LEDR - IO24
    LEDB - IO25
  5. 蜂鸣器 - IO17
  6. 独立按键
    KEY0按键 - IO18
    KEY1按键 - IO19
    KEY2按键 - IO16
    14.2.3 原理图
    本章实验内容,需要读取独立按键连接IO上的电平状态,正点原子DNK210开发板上独立按键的连接原理图,如下图所示:
    在这里插入图片描述

图14.2.3.1 独立按键连接原理图
通过以上原理图可以看出,KEY0按键、KEY1按键和KEY2按键对应的IO编号分别为IO18、IO19和IO16,当独立按键没有被按下时,其对应的IO将处于悬空状态,此时读取到的电平将由IO的上下拉决定,当独立按键被按下后,其对应IO的电平将被拉低。
14.3 程序设计
14.3.1 maix.GPIO模块
有关maix.GPIO模块的介绍,请见第14.1小节《maix.GPIO模块介绍》。
14.3.2 程序流程图
在这里插入图片描述

图14.3.2.1 按键输入实验流程图
14.3.3 main.py代码
main.py中的脚本代码如下所示:

from board import board_info
from fpioa_manager import fm
from maix import GPIO# 为IO分配相应的硬件功能
fm.register(board_info.LEDR, fm.fpioa.GPIO0)
fm.register(board_info.LEDB, fm.fpioa.GPIO1)
fm.register(board_info.BEEP, fm.fpioa.GPIO2)
fm.register(board_info.KEY0, fm.fpioa.GPIOHS0)
fm.register(board_info.KEY1, fm.fpioa.GPIOHS1)
fm.register(board_info.KEY2, fm.fpioa.GPIOHS2)# 构造GPIO对象
ledr = GPIO(GPIO.GPIO0, GPIO.OUT)
ledb = GPIO(GPIO.GPIO1, GPIO.OUT)
beep = GPIO(GPIO.GPIO2, GPIO.OUT)
key0 = GPIO(GPIO.GPIOHS0, GPIO.IN, GPIO.PULL_UP)
key1 = GPIO(GPIO.GPIOHS1, GPIO.IN, GPIO.PULL_UP)
key2 = GPIO(GPIO.GPIOHS2, GPIO.IN, GPIO.PULL_UP)while True:# 读取按键状态,并做相应的按键解释if key0.value() == 0:ledr.value(0)else:ledr.value(1)if key1.value() == 0:ledb.value(0)else:ledb.value(1)if key2.value() == 0:beep.value(1)else:beep.value(0)

可以看到,首先为使用到的IO分配相应的硬件功能,接着是构造GPIO对象,特别的,独立按键相关的GPIO对象都被初始化为上拉输入模式,以读取独立按键的状态,最后在一个循环分别读取KEY0按键、KEY1按键和KEY2按键对应的GPIO输入电平,以判断独立按键是否被按下,若KEY0按键被按下,则控制对应的GPIO输出低电平以控制红色LED亮起,反之则控制对应的GPIO输出高电平以控制红色LED熄灭,KEY1按键和KEY2按键的读取和按键解释同理。
14.4 运行验证
将DNK210开发板连接CanMV IDE,并点击CanMV IDE上的“开始(运行脚本)”按钮后,此时,若按下板载的KEY0按键,则能看到双色LED的红色亮起,释放KEY0按键后,双色LED的红色熄灭,若按下KEY1按键,则能看到双色LED的蓝色亮起,释放KEY1按键后,双色LED的蓝色熄灭,若按下KEY2按键,则能听到蜂鸣器发声,释放KEY2按键后,蜂鸣器不发声,这与理论推断的结果一致。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/864228.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue3 登录成功,浏览器存在toke,再次访问/login路由到/index 首页页面

文章目录 目录 文章目录 流程 小结 概要流程技术细节小结 概要 首先需要清楚知道浏览器localstorage和Session storage的区别 localStorage 和 sessionStorage 是 HTML5 提供的两种客户端存储数据的方法,它们在使用和生命周期上有一些区别: 1. 生命周期…

@Cacheable解决复杂对象形参导致的缓存失效问题(如Map参数)

在Spring中使用 Cacheable 注解可以非常方便地实现方法的自动缓存机制。如以下代码: Cacheable(value "YwtbToken", key "#p0") public String createToken(String dlzh) {...}但当Cacheable 注解修饰的方法参数使用了复杂对象,如…

物联网数据可视化利器:云组态设计器全新升级

数据可视化已成为数据展示与分析领域非常重要的工具。由多种图表、3D图形组成的大屏能够帮助用户非常直观简洁地了解数据。在物联网环境下,用户在制作数据展示大屏时,对数据可视化工具提出了更高的要求,例如能够展示3D组件、灵活的图层结构、支持多种数据源、实时的数据更新、图…

函数创建单链表---无n型,需要 while 循环 + scanf

题目&#xff1a; #include <stdlib.h> struct link{int data;struct link *next; }; struct link* creatLink(); int main(){struct link *head,*p;headcreatLink();for(phead->next ;p;pp->next )printf("%d ",p->data );return 0; }/* 请在这里填…

软考《信息系统运行管理员》-2.1信息系统运维的管理

2.1信息系统运维的管理 信息系统运维管理体系框架 信息系统运维管理主要流程的目标 标准化&#xff1a;通过流程框架&#xff0c;构件标准的运维流程流程化&#xff1a;将大部分运维工作流程化&#xff0c;确保工作可重复&#xff0c;并且这些工作都有质量的完成&#xff0c;…

线性代数|机器学习-P20鞍点和极值

文章目录 1 . 瑞利商的思考1.1 瑞利商的定义1.2 投影向量 2. 拉格朗日乘子法3. 鞍点4. 线性拟合4.1 范德蒙矩阵线性拟合4.2 python 代码4.3 范德蒙矩阵缺点 5. 均值和方差5.1 样本均值和方差5.2 总体期望 μ \mu μ,总体方差 σ 2 \sigma^2 σ2 1 . 瑞利商的思考 1.1 瑞利商…

MySQL学习(6):SQL语句之数据控制语言:DCL

DCL用来管理数据库用户&#xff0c;控制数据库的访问权限 1.管理用户 1.1查询用户 use mysql; select * from user; #用户信息都存放在系统数据库mysql的user表中 在user表中&#xff0c;一个用户是由用户名和主机名共同决定的&#xff0c;上图中的host一栏就是用户的主机名…

常用组件详解(二):torchsummary

文章目录 一、基本使用二、常见指标2.1Input size2.2Forward/backward pass size 一、基本使用 torchsummary库是一个好用的模型可视化工具&#xff0c;用于帮助开发者把握每个网络层级的细节&#xff0c;包括其中的连接和维度。使用方法&#xff1a; from torchsummary impor…

ubuntu 安装docker

目录 docker 打包与加载 加载 Docker 镜像&#xff1a; ubuntu 安装docker 系统版本 检查卸载老版本docker 安装步骤 运行docker docker 打包与加载 打包成 .tar 文件&#xff1a; tar -cvf my-docker-image.tar * 加载 Docker 镜像&#xff1a; docker load -i my-d…

Access Levels in Swift

Access Levels (访问级别) Swift provides six different access levels for entities(实体) within your code. These access levels are relative to the source file in which an entity is defined, the module(模块) that source file belongs to, and the package that …

分享一个超级实用的东西——巴比达远程访问

前言 &#x1f388;家人们&#xff0c;今天我要和你们分享一个超级实用的东西——巴比达远程访问&#xff01;&#x1f389; &#x1f4bb;有了它&#xff0c;无论你身在何处&#xff0c;都能轻松访问家中的电脑&#x1f4bb;&#xff0c;就像在身边一样方便&#xff01;&…

短视频电商源码如何选择

在数字时代的浪潮下&#xff0c;短视频电商以其直观、生动、互动性强的特点&#xff0c;迅速崛起成为电商行业的一股新势力。对于有志于进军短视频电商领域的创业者来说&#xff0c;选择一款合适的短视频电商源码至关重要。本文将从多个角度探讨如何选择短视频电商源码&#xf…

携程礼品卡能转出去吗?

携程的卡好像只能在旅游的时候用 像买车票啊&#xff0c;机票啊&#xff0c;酒店&#xff0c;景点门票啥的&#xff0c;但是如果我没有出游计划的话 这个卡是不是就要被闲置下来&#xff1f; 这个问题一直让我感到很苦恼&#xff0c;还好有收卡云&#xff0c;不然我的携程卡…

模型部署:C++libtorch实现全连接模型10分类和卷积模型ResNet18的四分类的模型部署推理

Clibtorch实现模型部署推理 模型 全连接模型&#xff1a;公开mnist手写识别数字的十分类卷积模型&#xff1a;自行采集的鲜花四分类 部署 语言环境&#xff1a;C 对比Python python是解释性语言&#xff0c;效率很慢&#xff0c;安全性很低 系统开发一般是java、C/C&…

在 CentOS 上安装 Docker Engine

前言 Docker 是啥之类的就不必多说了&#xff0c;直接上安装步骤。 官网安装教程地址&#xff1a;https://docs.docker.com/engine/install/centos/ 1.Uninstall old versions &#xff08;卸载旧版本&#xff09; Older versions of Docker went by docker or docker-engin…

NLP特征提取的惊人历史演变

NLP特征提取的惊人演变 1.理解特征提取2. 文本表示的演变2.1.词袋的简单性2.2. N-Gram 模型的进步2.3. TF-IDF 的崛起 3. 深入研究词嵌入3.1.探索 Word2Vec3.2.深入了解 GloVe3.3.深入研究 FastText 4. 上下文嵌入的影响4.1 ELMo 的突破4.2 理解 BERT 的机制4.3 Transformer的出…

44 - 50题高级字符串函数 / 正则表达式 / 子句 - 高频 SQL 50 题基础版

目录 1. 相关知识点2.例子2.44 - 修复表中的名字2.45 - 患某种疾病的患者2.46 - 删除重复的电子邮箱2.47 - 第二高的薪水2.48 - 按日期分组销售产品2.49 - 列出指定时间段内所有的下单产品2.50 - 查找拥有有效邮箱的用户 1. 相关知识点 相关函数 函数含义concat()字符串拼接upp…

Ollama中文版部署

M1部署Ollama Ollama中文网站: Featured - 精选 - Ollama中文网 下载网址: Download Ollama on macOS 安装后运行llma3模型: ollama run llama3:8b 界面使用: GitHub - open-webui/open-webui: User-friendly WebUI for LLMs (Formerly Ollama WebUI) 部署open-webui: do…

烟台网站建设前需要了解哪些

在进行烟台网站建设之前&#xff0c;需要了解以下几个重要的方面&#xff1a; 1. 目标和定位&#xff1a;在建设网站之前&#xff0c;需要明确网站的目标和定位。是为了展示公司业务&#xff0c;还是为了销售产品&#xff0c;或者是为了提供信息和服务等。根据不同的目标和定位…

界面组件DevExpress WPF v24.1 - 增强的可访问性 UI自动化

DevExpress WPF拥有120个控件和库&#xff0c;将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序&#xff0c;这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 DevExpress WPF控件日…