视觉开发板—K210自学笔记(五)

news2024/10/6 16:30:44

本期我们来遵循其他单片机的学习路线开始去用板子上的按键控制点亮LED。那么第一步还是先知道K210里面的硬件电路是怎么连接的,需要查看第二节的文档,看看开发板原理图到底是按键是跟哪个IO连在一起。然后再建立输入按键和GPIO的映射就可以开始变成了。

  • 硬件电路

根据之前官方提供的assembly drawing资料我们能知道了实际的LED位置,同样我们来

找一下按键的位置。

        

通过分析电路图我们可以看出实体按键一共有两个,S1和S2,分别连接了RST和BOOT引脚。但是通过查找RST可以看出,直接连接到了SGM803T这个芯片上,它是一个电源管理芯片,所以我们无法通过设计RST的映射去进行编程操作。固我们可以控制的只有BOOT引脚对应的按键了,查询CPU那侧可以看到它连接的物理引脚是IO_16,这个我们是可以通过程序对BOOT进行配置的。

  • 程序开发

上一节我们提到了GPIO和IO的区别,注意要区分 GPIO  IO的区别, IO也可以叫Pin 也就是引脚,是芯片引出来的硬件引脚, GPIO是一种外设,可以控制这些Pin/IO 的外设。两者可以有一种方法映射,就像一道桥一样连接他们。因为有了这个强大的映射功能, 所以在使用引脚时,需要增加一步映射的步骤:

from fpioa_manager import fm    # 导入库类似C语言的头文件

fm.register(28, fm.fpioa.GPIO0)

这里我们将引脚 28 映射为了 GPIO0 的功能, 执行了这句命令后,引脚28和GPIO0就映射(绑定)好了,要取消映射(解绑),则需要调用fm.unregister函数,如fm.unregister(28)可取消引脚28的绑定。

这是之前讲过的内容,接下来结合官方文档总结一下如何将某 IO 注册为 GPIO 功能。

先引入头文件

from Maix import GPIO

from fpioa_manager import fm

上述的程序中,我能怎么知道引入什么库才能使用呢,也就是说唯一未知的头文件是如何引入的呢?看下图:

通过上述的官方文档截图可以看出,文档提供的API手册中提供了所有的库的名称和使用说明供给开发者使用。

然后将IO注册为GPIO,

fm.register(io_number,fm.fpioa.GPIO0)

设置 GPIO 为输入或输出模式,GPIO调参的用法可以参考上述提到的官方文档,有详细的说明和示例。

gpio=GPIO(GPIO.GPIO0,GPIO.OUT)

接下来就是如何使用了:和C语言的结构体类似的操作,读取或设置 GPIO 电平

gpio.value()  #直接在括号内赋值即可配置成输出

经过以上流程的总结,希望大家对整个的程序架构有一个基本的概念,学过STM32的同学可能会很好的接收以上的事实。新手的同学需要记住以上的步骤,基本上调用IO都是这个流程。

那么我们接下来完成今天的任务,按键控制LED的操作。

from Maix import GPIO                                            #引入头文件

from fpioa_manager import fm



io_led_blue = 12                           #根据原理图对应IO引脚

io_led_red = 13

io_key = 16



fm.register(io_led_blue, fm.fpioa.GPIO0)       #映射IO到GPIO

fm.register(io_led_red, fm.fpioa.GPIO1)

fm.register(io_key, fm.fpioa.GPIO2)



Led_b = GPIO(GPIO.GPIO0, GPIO.OUT)         #设置输入输出模式

Led_r = GPIO(GPIO.GPIO0, GPIO.OUT)

Key  = GPIO(GPIO.GPIO2, GPIO.IN)



while True:

    if Key.value()==0:                      #读取或设置 GPIO 电平

        Led_r.value(1)

    else:

        Led_r.value(0)
  • 总结

以上就是按键控制LED的流程,涵盖了GPIO的输入输出的基本操作。任何控制器、单片机和CPU首先要掌握的就是输入输出的GPIO,学会了这个基本就能完成大部分的项目的基本功能了。

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

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

相关文章

VTK 常用坐标系 坐标系 转换

1.VTK 常用坐标系 计算机图形学里常用的坐标系统主要有四种,分别是:Model坐标系统、World坐标系统、View坐标系统和Display坐标系统 在VTK里,Model坐标系统用得比较少,其他三种坐标系统经常使用。它们之间的变换则是由类vtkCoord…

Docker容器输入汉字触发自动补全

一、描述 输入汉字自动触发补全: Display all 952 possibilities? (y or n)是因为容器中没有中文字符集和中文字体导致的,安装中文字体,并设置字符集即可。 二、解决 1、安装字符集 (1)查看系统支持的字符集 lo…

甘肃旅游服务平台:技术驱动的创新实践

✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 |…

【Java程序设计】【C00260】基于Springboot的企业客户信息反馈平台(有论文)

基于Springboot的企业客户信息反馈平台(有论文) 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的企业客户信息反馈平台 本系统分为平台功能模块、管理员功能模块以及客户功能模块。 平台功能模块:在平台首页可…

计算机网络——网络安全

计算机网络——网络安全 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家, [跳转到网站](https://www.captainbed.cn/qianqiu) 小程一言专栏链接: [link](http://t.csdnimg.cn/ZUTXU) 网络安全何…

【AI绘图】初见·小白入门stable diffusion的初体验

首先,感谢赛博菩萨秋葉aaaki的整合包 上手 stable diffusion还是挺好上手的(如果使用整合包的话),看看界面功能介绍简单写几个prompt就能生成图片了。 尝试 我在网上找了一张赛博朋克边缘行者Lucy的cos图,可能会侵…

黄金交易策略(Nerve Nnife.mql4):趋势平仓按钮的作用

当觉得行情不太对路,可以点击右下角按钮,实现趋势单的移动止盈(止损)。点了这个按钮回撤多少平仓是可以在参数里设定的。 完整EA:Nerve Knife.ex4黄金交易策略_黄金趋势ea-CSDN博客

深入理解梯度加权类激活热图(Grad-CAM)

深入理解梯度加权类激活热图(Grad-CAM) 项目背景与意义 在深度学习领域,模型的预测能力往往是黑盒子,难以解释。梯度加权类激活热图(Grad-CAM)作为一种可解释性技术,能够帮助模型开发者更好地…

使用R语言建立回归模型并分割训练集和测试集

通过简单的回归实例&#xff0c;可以说明数据分割为训练集和测试集的必要性。以下先建立示例数据: set.seed(123) #设置随机种子 x <- rnorm(100, 2, 1) # 生成100个正态分布的随机数&#xff0c;均值为2&#xff0c;标准差为1 y exp(x) rnorm(5, 0, 2) # 生成一个新的变…

Ubuntu Desktop - Disks

Ubuntu Desktop - Disks 1. Search your computer -> DisksReferences 1. Search your computer -> Disks ​ References [1] Yongqiang Cheng, https://yongqiang.blog.csdn.net/

[神奇代码岛】制作一个单开门(有过渡动画)

前言 神岛PRO不是有一个可以制作动画的功能吗&#xff1f;但是有些岛民到现在还不知道怎么操控这个动画&#xff0c;那我今天就来教学&#xff0c;咋们哪一个简单的例子吧------单开门&#xff08;有过渡动画&#xff09; 材料准备 建模 简单建模的一个门&#xff0c;此模型…

qt “美颜”

要想成为一名优秀的qt工程师 学会使用qss编程也是重要的 不可获缺的一部分 qss 简介和优势 QSS&#xff08;Qt Style Sheets&#xff09;是一种用于定义Qt应用程序界面外观和样式的样式表语言。它类似于CSS&#xff08;层叠样式表&#xff09;&#xff0c;但针对Qt框架进行了定…

2023爱分析·大模型厂商全景报告|爱分析报告

01 研究范围定义 研究范围 大模型是指通过在海量数据上依托强大算力资源进行训练后能完成大量不同下游任务的模型。2023年以来&#xff0c;ChatGPT引爆全球大模型市场。国内众多大模型先后公测&#xff0c;众多互联网领军者投身大模型事业&#xff0c;使得大模型市场进入“百团…

基于Zigbee的智能温室大棚系统(附详细使用教程+完整代码+原理图+完整课设报告)

🎊项目专栏:【Zigbee课程设计系列文章】(附详细使用教程+完整代码+原理图+完整课设报告) 前言 👑由于无线传感器网络(也即是Zigbee)作为🌐物联网工程的一门必修专业课,具有很强的实用性,因此很多院校都开设了zigbee的实训课程;👑同时最近很多使用了我的单片机课…

【开源】SpringBoot框架开发农家乐订餐系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 用户2.2 管理员 三、系统展示四、核心代码4.1 查询菜品类型4.2 查询菜品4.3 加购菜品4.4 新增菜品收藏4.5 新增菜品留言 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVueSpringBootMySQL的农家乐订餐系统&#xff0c…

博客系统-SpringBoot版本

相比于之前使用Servlet来完成的博客系统&#xff0c;SpringBoot版本的博客系统功能更完善&#xff0c;使用到的技术更接近企业级&#xff0c;快来看看吧~ 目录 1.项目介绍 2.数据库准备 3.实体化类 4.返回格式 5.登录和注册功能 6.登出&#xff08;注销&#xff09;功能…

【Rust】使用Rust实现一个简单的shell

一、Rust Rust是一门系统编程语言&#xff0c;由Mozilla开发并开源&#xff0c;专注于安全、速度和并发性。它的主要目标是解决传统系统编程语言&#xff08;如C和C&#xff09;中常见的内存安全和并发问题&#xff0c;同时保持高性能和底层控制能力。 Rust的特点包括&#x…

一周学会Django5 Python Web开发-Django5操作命令

锋哥原创的Python Web开发 Django5视频教程&#xff1a; 2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~共计11条视频&#xff0c;包括&#xff1a;2024版 Django5 Python we…

2024年P气瓶充装证模拟考试题库及P气瓶充装理论考试试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2024年P气瓶充装证模拟考试题库及P气瓶充装理论考试试题是由安全生产模拟考试一点通提供&#xff0c;P气瓶充装证模拟考试题库是根据P气瓶充装最新版教材&#xff0c;P气瓶充装大纲整理而成&#xff08;含2024年P气瓶…

单例模式:懒汉饿汉线程安全问题

在我们前几篇文章中都了解了一些关于线程的知识&#xff0c;那么在多线程的情况下如何创建单例模式&#xff0c;其中的线程安全问题如何解决&#xff1f; 目录 1.什么是单例模式&#xff1f; (饿汉模式) 2.单例模式(懒汉模式) *懒汉模式与懒汉模式的对比 *如何解决懒汉模式…