发布日期: 2023/12/12 07:36


R128开发指南按键控制蜂鸣器

下载案例《按键控制蜂鸣器案例》代码 可以到全志在线-在线文档

开发板方案载入

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



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

$ source envsetup.sh 
$ lunch_rtos 1

SPI/DBI测试结果

mrtos_menuconfig 找到下列驱动

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


编写程序引入头文件

运行 mrtos_menuconfig 进入配置页面。在如下地址找到勾选相关软件包。

lichee/rtos/projects/r128s2/module_c906/src/main.c

93f23b7b43c2b88b07d690ac1438e9008f840886 (3).png l


进行头文件引入

#include <hal_gpio.h>

l



GPIO配置引脚

1、配置 GPIO 的上下拉状态,使用

hal_gpio_set_pull(gpio_pin_t pin, gpio_pull_status_t pull);

这里我们设置 PA25 引脚为默认上拉状态

hal_gpio_set_pull(GPIOA(25), GPIO_PULL_UP);

2、配置 GPIO 输入输出模式,使用

printf("hello world!");

设置 GPIO 的输入输出模式,这里配置为输入模式。

hal_gpio_set_direction(GPIOA(25), GPIO_DIRECTION_INPUT);

3、GPIO 通常有多种功能,需要配置 MUX 选择需要的功能,使用

hal_gpio_pinmux_set_function(gpio_pin_t pin, gpio_muxsel_t function_index);

设置 GPIO 的复用功能,这里配置为GPIO 输入模式

hal_gpio_pinmux_set_function(GPIOA(25), GPIO_MUXSEL_IN);

4、获取GPIO的电平,使用

int hal_gpio_get_data(gpio_pin_t pin, gpio_data_t *data);

获取 GPIO 的电平,这里配置 PA25 为高电平点亮 LED

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

5、配置 GPIO 的电平,使用

hal_gpio_set_data(gpio_pin_t pin, gpio_data_t data);

这里配置 PA18 为高电平点亮 LED

hal_gpio_set_data(GPIOA(18), GPIO_DATA_HIGH);

6、完整的配置 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);

// 配置按键输入脚为输出,默认拉高
hal_gpio_set_pull(GPIOA(29), GPIO_PULL_UP);
hal_gpio_set_direction(GPIOA(29), GPIO_DIRECTION_OUTPUT);
hal_gpio_pinmux_set_function(GPIOA(29), GPIO_MUXSEL_OUT);
hal_gpio_set_data(GPIOA(29), GPIO_DATA_HIGH);

while(1){
    hal_gpio_get_data(GPIOA(25), &gpio_data);
    // 检测按键输入,如果有输入则输出buzz
    if(gpio_data == GPIO_DATA_LOW){
        printf("Key Pressed! And Buzz\n");
        hal_gpio_set_data(GPIOA(29), GPIO_DATA_LOW);
    } else {
        hal_gpio_set_data(GPIOA(29), GPIO_DATA_HIGH);
    }
}

编译固件后烧录,按下按键蜂鸣器会发出声音,同时串口输出Key Pressed! And Buzz

基于R128-S2设计的全套开发板已上线淘宝百问网韦东山老师个人店进行售卖,包含黑色的DshanMCU-R128s2-R16N16模组和全套的DshanMCU-R128s2-DEVKIT。

  • DshanMCU-R128s2-R16N16模组:39.9元
  • DshanMCU-R128s2-DEVKIT开发板:59.9元 R128开发板购买链接: https://m.tb.cn/h.5T4uATe?tk=S079W0vCt6v