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


    按键输入

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

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

    在这里插入图片描述

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

    载入方案

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

    $ source envsetup.sh 
    $ lunch_rtos 1
    
    • 1
    • 2

    在这里插入图片描述

    勾选 GPIO 驱动

    mrtos_menuconfig 找到下列驱动

    Drivers Options  --->
        soc related device drivers  --->
                GPIO devices --->
                    [*] enable GPIO driver
                    [*] enbale GPIO hal APIs Test command
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述

    编写程序

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

    在这里插入图片描述

    引入头文件

    #include 
    
    • 1

    在这里插入图片描述

    使用 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);
    
    • 1
    配置 GPIO 输入输出模式

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

    hal_gpio_set_direction(GPIOA(25), GPIO_DIRECTION_INPUT);
    
    • 1
    配置 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);
    
    • 1
    获取 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);
    
    • 1
    • 2

    完整的配置 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");
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    在这里插入图片描述

    结果

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

    在这里插入图片描述

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

  • 相关阅读:
    Dos慢速攻击
    java 企业工程管理系统软件源码 自主研发 工程行业适用
    【网站项目】书籍销售系统小程序
    SSM的整合
    基于TCPIP的网络编程(C++语言编程)
    Tutorial: Extracting Data from Complex Text Files
    三、静态路由实验
    小学生python游戏编程arcade----可旋转炮台的坦克
    后疫情时代新加坡网络安全治理的动态与趋势
    Camera2相机拍照流程之预览功能梳理
  • 原文地址:https://blog.csdn.net/weixin_43094346/article/details/133746215