0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

DshanMCU-R128s2-DEVKIT应用开发案例

全志在线 来源:r128.docs.aw-ol.com 2023-09-28 16:26 次阅读

本文章为DshanMCU-R128s2-DEVKIT应用开发案例,本文案例(点亮一颗 LED 灯)代码可以到全志在线-在线文档或者复制链接前往下载

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

b76a5f90-5dd7-11ee-939d-92fbcf53809c.jpgb77ac8b2-5dd7-11ee-939d-92fbcf53809c.png

载入方案

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

$ source envsetup.sh 
$ lunch_rtos 1
b78775ee-5dd7-11ee-939d-92fbcf53809c.png

勾选GPIO驱动

mrtos_menuconfig找到下列驱动

Drivers Options --->
  soc related device drivers --->
      GPIO devices --->
        [*] enable GPIO driver
        [*] enbale GPIO hal APIs Test command
b79de2d4-5dd7-11ee-939d-92fbcf53809c.png

编写程序

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

b7b8b35c-5dd7-11ee-939d-92fbcf53809c.png

引入头文件

#include 
b7db6d98-5dd7-11ee-939d-92fbcf53809c.png

使用GPIO配置引脚

1.配置 GPIO 的上下拉状态

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

hal_gpio_set_pull(GPIOA(18), GPIO_PULL_UP);

2.配置 GPIO 输入输出模式

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

hal_gpio_set_direction(GPIOA(18), GPIO_DIRECTION_OUTPUT);

3.配置 GPIO 的 MUX 功能

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

hal_gpio_pinmux_set_function(GPIOA(18), GPIO_MUXSEL_OUT);

4.配置 GPIO 的电平

使用hal_gpio_set_data(gpio_pin_t pin, gpio_data_t data);来配置 GPIO 的电平,这里配置PA18为高电平点亮 LED

hal_gpio_set_data(GPIOA(18), GPIO_DATA_HIGH);

5.完整的配置 GPIO

hal_gpio_set_pull(GPIOA(18), GPIO_PULL_UP); // 配置 GPIO 的上下拉状态
hal_gpio_set_direction(GPIOA(18), GPIO_DIRECTION_OUTPUT); // 配置 GPIO 输入输出模式
hal_gpio_pinmux_set_function(GPIOA(18), GPIO_MUXSEL_OUT); // 配置 GPIO 的 MUX 功能
hal_gpio_set_data(GPIOA(18), GPIO_DATA_HIGH); // 配置 GPIO 的电平

以此类推,我们同时配置PA18,PA13,PA12的 GPIO

hal_gpio_set_pull(GPIOA(18), GPIO_PULL_UP);
hal_gpio_set_direction(GPIOA(18), GPIO_DIRECTION_OUTPUT);
hal_gpio_pinmux_set_function(GPIOA(18), GPIO_MUXSEL_OUT);
hal_gpio_set_data(GPIOA(18), GPIO_DATA_HIGH);


hal_gpio_set_pull(GPIOA(13), GPIO_PULL_UP);
hal_gpio_set_direction(GPIOA(13), GPIO_DIRECTION_OUTPUT);
hal_gpio_pinmux_set_function(GPIOA(13), GPIO_MUXSEL_OUT);
hal_gpio_set_data(GPIOA(13), GPIO_DATA_HIGH);


hal_gpio_set_pull(GPIOA(12), GPIO_PULL_UP);
hal_gpio_set_direction(GPIOA(12), GPIO_DIRECTION_OUTPUT);
hal_gpio_pinmux_set_function(GPIOA(12), GPIO_MUXSEL_OUT);
hal_gpio_set_data(GPIOA(12), GPIO_DATA_HIGH);
b7f74392-5dd7-11ee-939d-92fbcf53809c.png

结果

编译固件后烧录,可以看到三色 LED 灯同时亮起。

b80c7b72-5dd7-11ee-939d-92fbcf53809c.jpg

流水灯

为了实现流水灯,我们先实现一个sleep函数

static inline int msleep(int ms) {
  vTaskDelay(ms / portTICK_RATE_MS); 
}
b822efec-5dd7-11ee-939d-92fbcf53809c.png

然后实现流水灯逻辑即可,之前已经设置过的GPIO状态不需要重复设置。

while (1) {
  hal_gpio_set_data(GPIOA(18), GPIO_DATA_HIGH);
  hal_gpio_set_data(GPIOA(13), GPIO_DATA_LOW);
  hal_gpio_set_data(GPIOA(12), GPIO_DATA_LOW);
  msleep(100);
  hal_gpio_set_data(GPIOA(18), GPIO_DATA_LOW);
  hal_gpio_set_data(GPIOA(13), GPIO_DATA_HIGH);
  hal_gpio_set_data(GPIOA(12), GPIO_DATA_LOW);
  msleep(100);
  hal_gpio_set_data(GPIOA(18), GPIO_DATA_LOW);
  hal_gpio_set_data(GPIOA(13), GPIO_DATA_LOW);
  hal_gpio_set_data(GPIOA(12), GPIO_DATA_HIGH);
  msleep(100);
}
b839eb7a-5dd7-11ee-939d-92fbcf53809c.png

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • mcu
    mcu
    +关注

    关注

    146

    文章

    17040

    浏览量

    350511
  • led灯
    +关注

    关注

    22

    文章

    1592

    浏览量

    107881
  • 开发板
    +关注

    关注

    25

    文章

    4979

    浏览量

    97272
  • GPIO
    +关注

    关注

    16

    文章

    1197

    浏览量

    51968

原文标题:R128点灯指南

文章出处:【微信号:gh_79acfa3aa3e3,微信公众号:全志在线】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    使用全志R128实现LVGL的移植

    我们使用的开发板是 R128-Devkit,需要开发 C906 核心的应用程序,所以载入方案选择 r128s2_module_c906
    的头像 发表于 11-13 10:14 1540次阅读
    使用全志<b class='flag-5'>R128</b>实现LVGL的移植

    全志R128 Devkit开发板原理图模块介绍及使用说明

    针对 R128 模组,百问科技推出了 R128 DevKit 开发板作为快速开发评估工具。 板载 R
    发表于 01-17 09:45

    小时候画在手腕上的表,我用全志R128让他真正动了起来

    ——NWatch,并把他移植到了R128开发板上。 项目简介 本项目基于ZakKemble的开源项目NWatch,与原作者的NWatch不一样的是,作者将其移植到DShanMCU-R128s2-DevKit
    发表于 11-09 17:03

    全志R128应用开发案例—点亮一颗LED灯

    我们使用的开发板是 R128-Devkit,需要开发 C906 核心的应用程序,所以载入方案选择`r128s2_module_c906`
    发表于 10-09 16:46 461次阅读
    全志<b class='flag-5'>R128</b>应用<b class='flag-5'>开发案</b>例—点亮一颗LED灯

    基于DShanMCU-R128s2-DevKit开发智能手表

    本项目基于DShanMCU-R128s2-DevKit开发,用意是提供一个综合的示例进行学习参考。
    的头像 发表于 11-01 15:32 756次阅读
    基于<b class='flag-5'>DShanMCU-R128s2-DevKit</b><b class='flag-5'>开发</b>智能手表

    DshanMCU-R128s2全志R128视频教程

    基于DShanMCU-R128S2_DevKit的入门教程
    的头像 发表于 12-26 14:05 578次阅读

    DshanMCU-R128s2芯片简介

    DshanMCU-R128s2芯片简介
    的头像 发表于 12-22 09:55 822次阅读
    <b class='flag-5'>DshanMCU-R128s2</b>芯片简介

    DshanMCU-R128s2芯片参数

    MB LS PSRAM R128 S2)/8 channels (R128 S3) - One LEDC used to control the external intellige
    的头像 发表于 12-26 10:57 1047次阅读

    DshanMCU-R128s2 R128 模组

    R128-S2-N16R16 R128-S2 Arm Cortex-M33 C906 RISC-V HIFI5 DSP 1MByte 8Mbyte 8Mbyte 16M NOR Flash 2 Audio
    的头像 发表于 12-26 11:11 1009次阅读
    <b class='flag-5'>DshanMCU-R128s2</b> <b class='flag-5'>R128</b> 模组

    DshanMCU-R128s2 R128 DevKit 开发

    针对 R128 模组,百问科技推出了 R128 DevKit 开发板作为快速开发评估工具。 特性: 板载
    的头像 发表于 12-22 12:02 599次阅读
    <b class='flag-5'>DshanMCU-R128s2</b> <b class='flag-5'>R128</b> <b class='flag-5'>DevKit</b> <b class='flag-5'>开发</b>板

    DshanMCU-R128s2 R128 EVT 开发套件

    针对 R128 模组,百问科技推出了 R128 EVT 开发套件作为快速开发评估工具。
    的头像 发表于 12-22 15:16 753次阅读
    <b class='flag-5'>DshanMCU-R128s2</b> <b class='flag-5'>R128</b> EVT <b class='flag-5'>开发</b>套件

    DshanMCU-R128s2 SDK 架构与目录结构

    R128 S2 是全志提供的一款 M33(ARM)+C906(RISCV-64)+HIFI5(Xtensa) 三核异构 SoC,同时芯片内部 SIP 有 1M SRAM、8M LSPSRAM、8M
    的头像 发表于 12-22 15:57 705次阅读
    <b class='flag-5'>DshanMCU-R128s2</b> SDK 架构与目录结构

    DshanMCU-R128s2 Hello World!

    本文将介绍使用 R128 开发板从串口输出 Hello World 的方式介绍 SDK 软件开发流程。 载入方案 我们使用的开发板是 R128-De
    的头像 发表于 12-22 17:24 581次阅读
    <b class='flag-5'>DshanMCU-R128s2</b> Hello World!

    DshanMCU-R128s2 配置引脚复用

    解析 sys_config.fex 的驱动配置位于 licheertos-componentsawsys_config_script 中。 对于配置引脚复用,只需要修改 boardr128s2{PROJECT}configsys_config.fex 文件即可。 GPIO描述
    的头像 发表于 12-22 17:36 639次阅读

    DshanMCU-R128s2硬件设计参考

    R128 DevKit 开发板 硬件工程开源地址:https://oshwhub.com/gloomyghost/r128-module 电路图
    的头像 发表于 12-26 09:46 951次阅读