全志R128芯片应用开发案例——按键输入

news2024/11/19 2:48:44

按键输入

本文案例代码下载地址
按键输入案例代码https://www.aw-ol.com/downloads?cat=24

首先我们搭建电路,如下:

在这里插入图片描述

引脚按键
PA25按键1脚
GND按键3脚

载入方案

我们使用的开发板是 R128-Devkit,需要开发 C906 核心的应用程序,所以载入方案选择r128s2_module_c906

$ source envsetup.sh 
$ lunch_rtos 1

在这里插入图片描述

勾选 GPIO 驱动

mrtos_menuconfig 找到下列驱动

Drivers Options  --->
    soc related device drivers  --->
            GPIO devices --->
                [*] enable GPIO driver
                [*] enbale GPIO hal APIs Test command

在这里插入图片描述

编写程序

打开你喜欢的编辑器,修改文件:lichee/rtos/projects/r128s2/module_c906/src/main.c

在这里插入图片描述

引入头文件

#include <hal_gpio.h>

在这里插入图片描述

使用 GPIO 配置引脚

配置 GPIO 的上下拉状态

使用 hal_gpio_set_pull(gpio_pin_t pin, gpio_pull_status_t pull); 来设置。这里我们设置 PA25 引脚为默认上拉状态。

hal_gpio_set_pull(GPIOA(25), GPIO_PULL_UP);
配置 GPIO 输入输出模式

使用 hal_gpio_set_direction(gpio_pin_t pin, gpio_direction_t direction); 来设置 GPIO 的输入输出模式,这里配置为输入模式。

hal_gpio_set_direction(GPIOA(25), GPIO_DIRECTION_INPUT);
配置 GPIO 的 MUX 功能

GPIO 通常有多种功能,需要配置 MUX 选择需要的功能,使用 hal_gpio_pinmux_set_function(gpio_pin_t pin, gpio_muxsel_t function_index); 来设置 GPIO 的复用功能,这里配置为GPIO 输入模式(GPIO_MUXSEL_IN

hal_gpio_pinmux_set_function(GPIOA(25), GPIO_MUXSEL_IN);
获取 GPIO 的电平

使用 int hal_gpio_get_data(gpio_pin_t pin, gpio_data_t *data); 来获取 GPIO 的电平,这里获取 A25 的电平状态。

gpio_data_t gpio_data;
hal_gpio_get_data(GPIOA(25), &gpio_data);

完整的配置 GPIO

gpio_data_t gpio_data;
hal_gpio_set_pull(GPIOA(25), GPIO_PULL_UP);
hal_gpio_set_direction(GPIOA(25), GPIO_DIRECTION_INPUT);
hal_gpio_pinmux_set_function(GPIOA(25), GPIO_MUXSEL_IN);

while(1){
    hal_gpio_get_data(GPIOA(25), &gpio_data);
    if(gpio_data == GPIO_DATA_LOW){
        printf("Key Pressed!\n");
    }
}

在这里插入图片描述

结果

按下按键,串口会输出 Key Pressed!

在这里插入图片描述

原贴链接:https://bbs.aw-ol.com/topic/4358/
资源获取、问题讨论可以到全志在线开发者社区进行:https://www.aw-ol.com
全志及开发者最新动态可以关注全志在线微信公众号

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

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

相关文章

金融行业蓄电池监控,究竟有多厉害!

金融行业是现代社会的重要组成部分&#xff0c;金融机构依赖于高度可靠的电力系统来支持其日常运营。随着金融交易日益数字化和自动化&#xff0c;电力中断或失效可能导致严重的财务损失和风险。 因此&#xff0c;金融行业对电力供应的可靠性要求极高&#xff0c;而蓄电池监控正…

Vue3+vite 添加router后的2个坑

废话不多说&#xff0c;发现问题并解决问题 第 1 个坑&#xff1a;关于 …/ router 报红 正常引入页面路由&#xff0c;页面也显示出来了&#xff0c;路径也是正确的&#xff0c;但是却报红了。 原因是&#xff1a;当前路径正则有问题 解决方案&#xff1a; 在 src 文件下 v…

品牌的学习

2023年快消时尚品牌排行榜 时尚快消品牌推荐|除了Zara还有这么多好品牌在向你招手呢&#xff01; - 知乎 (zhihu.com) 2019年快消时尚品牌排行榜 (72 封私信 / 81 条消息) 如何评价UR这个品牌的衣服&#xff1f; - 知乎 (zhihu.com)

TLP265J(TPR,E(T Triac输出 光隔离器助力工业应用实现稳定高效解决方案

关于Triac输出光隔离器&#xff1a; 它是一种用于隔离和调节交流电压的电子设备。它通常被用于控制交流电源下的电阻性或容性负载&#xff0c;例如灯泡、加热器和电动工具等。该设备采用光电耦合器将输入信号和输出信号隔离开来&#xff0c;以保证安全性和稳定性。 光隔离器的…

嵌入式养成计划-33--数据库-sqlite3

七十一、 数据库 71.1 数据库基本概念 数据&#xff08;Data&#xff09; 能够输入计算机并能被计算机程序识别和处理的信息集合数据库 &#xff08;Database&#xff09;数据库是在数据库管理系统管理和控制之下&#xff0c;存放在存储介质上的数据集合 常用的数据库 大型数…

信息系统项目管理师第四版学习笔记——项目进度管理

项目进度管理过程 项目进度管理过程包括&#xff1a;规划进度管理、定义活动、排列活动顺序、估算活动持续时间、制订进度计划、控制进度。 规划进度管理 规划进度管理是为规划、编制、管理、执行和控制项目进度而制定政策、程序和文档的过程。本过程的主要作用是为如何在…

Unity官方文档中关于内存管理的翻译(2021.3)

原文:Memory in Unity - Unity 手册 Unity内存管理 为了确保您的应用程序运行时没有性能问题&#xff0c;了解Unity如何使用和分配内存非常重要。本文档的这一部分解释了Unity中内存是如何工作的&#xff0c;适用于希望了解如何提高应用程序内存性能的读者。 Unity使用三个内…

4+经典思路,肿瘤+WGCNA+预后模型鉴定预后标志物

今天给同学们分享一篇4经典思路的生信文章“Identification and validation of a five-gene prognostic signature based on bioinformatics analyses in breast cancer”&#xff0c;这篇文章于2023年1月27日发表在Heliyon期刊上&#xff0c;影响因子为4。 乳腺癌&#xff08;…

Java集合(三)--- List接口

文章目录 一、List接口常用实现类的对比二、List接口中的常用方法代码 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、List接口常用实现类的对比 二、List接口中的常用方法 代码 package com.tyust.edu;import org.junit.Test;import java.util.A…

界面组件DevExpress WinForms v23.2新功能预览 - 增强MVVM相关功能

本文主要描述了DevExpress WinForms即将在几个月之后发布的v23.2中包含的新功能&#xff0c;持续关注我们获取更多最新资讯哦~ DevExpress WinForms有180组件和UI库&#xff0c;能为Windows Forms平台创建具有影响力的业务解决方案。同时能完美构建流畅、美观且易于使用的应用…

Linux 安全 - LSM源码分析

文章目录 前言一、简介1.1 DAC 和 MAC1.2 LSM 调用流程图 二、LSM相关数据结构2.1 struct security_hook_list2.2 union security_list_options2.3 structure security_hook_heads 三、security_bprm_check四、LSM 源码分析3.1 early_security_init3.2 security_init3.2.1 secu…

代码随想录第39天 | ● 198.打家劫舍 ● 213.打家劫舍II ● 337.打家劫舍III

198.打家劫舍 /*** param {number[]} nums* return {number}*/ var rob function(nums) {//dp[i]max(dp[i-2],dp[dp-3])if(nums.length2)return Math.max(nums[0],nums[1])let dpnew Array(nums).fill(0)dp[0]nums[0]dp[1]Math.max(nums[0],nums[1])for(let i2;i<nums.le…

MacDroid pro 1.8(安卓设备文件传输)

MacDroid是一款适用于Mac OS的Android设备管理应用程序&#xff0c;它可以让用户轻松地将Android手机或平板电脑连接到Mac电脑&#xff0c;并在两者之间进行文件传输和数据同步。 通过MacDroid&#xff0c;用户可以通过USB或Wi-Fi连接&#xff0c;快速、简单地将文件从Android…

JVM第一讲:JVM相关知识体系详解+面试(P6熟练 P7精通)

JVM相关知识体系详解面试(P6熟练 P7精通) 面试时常常被面试官问到JVM相关的问题。本系列将给大家构建JVM核心知识点全局知识体系&#xff0c;本文是JVM第一讲&#xff0c;JVM相关知识体系详解和相关面试题梳理。 文章目录 JVM相关知识体系详解面试(P6熟练 P7精通)1、JVM学习建议…

学习vue-router

可参见: vue-router 详解_vue router_七月J的博客-CSDN博客 https://www.cnblogs.com/chen-ao666/p/17144552.html vue-router的使用 使用vue-router的步骤: 创建路由组件 配置路由映射: 组件和路径映射关系 使用路由: 通过和 <router-link>: 该标签是一个vue-router中…

在React中,什么是props(属性)?如何向组件传递props?

聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 欢迎来到前端入门之旅&#xff01;感兴趣的可以订阅本专栏哦&#xff01;这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…

【DRAM存储器十三】DDR介绍

&#x1f449;个人主页&#xff1a;highman110 &#x1f449;作者简介&#xff1a;一名硬件工程师&#xff0c;持续学习&#xff0c;不断记录&#xff0c;保持思考&#xff0c;输出干货内容 参考资料&#xff1a;《镁光DDR数据手册》 目录 DDR SDRAM芯片引脚 DDR SDRAM芯片框…

京东数据报告:2023年常温奶消费市场数据分析

众所周知&#xff0c;目前大家所熟知的乳企品牌最初能够在中国市场立足&#xff0c;靠的就是常温奶产品。作为一个传统领域赛道&#xff0c;常温奶多年来的规模增长大多来自于新老产品的升级迭代。 然而在消费加速升级的当下&#xff0c;常温奶行业显然陷入了僵局&#xff0c;…

软件测试工程师简历项目经验该如何编写(文档)

软件测试工程师简历项目经验怎么写 面试是我们进入一个公司的门槛&#xff0c;通过了面试才能进入公司&#xff0c;你的面试结果和你的薪资是息息相关的。 在面试之前&#xff0c;不得不聊聊简历&#xff0c;简历是职场的敲门砖&#xff0c;是拿到offer的通行证&#xff0c;那…

基于Java+SpringBoot+Vue在线问卷调查系统的设计与实现 前后端分离【计算机毕业设计·文档报告·代码讲解·安装调试】

&#x1f34a;作者&#xff1a;计算机编程-吉哥 &#x1f34a;简介&#xff1a;专业从事JavaWeb程序开发&#xff0c;微信小程序开发&#xff0c;定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事&#xff0c;生活就是快乐的。 &#x1f34a;心愿&#xff1a;点…