0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

DshanMCU-R128s2-DEVKIT應(yīng)用開(kāi)發(fā)案例

全志在線(xiàn) ? 來(lái)源:r128.docs.aw-ol.com ? 2023-09-28 16:26 ? 次閱讀

本文章為DshanMCU-R128s2-DEVKIT應(yīng)用開(kāi)發(fā)案例,本文案例(點(diǎn)亮一顆 LED 燈)代碼可以到全志在線(xiàn)-在線(xiàn)文檔或者復(fù)制鏈接前往下載。

首先我們搭建電路,如下:

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

載入方案

我們使用的開(kāi)發(fā)板是 DshanMCU-R128s2-DEVKIT,需要開(kāi)發(fā) C906 核心的應(yīng)用程序,所以載入方案選擇r128s2_module_c906

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

勾選GPIO驅(qū)動(dòng)

mrtos_menuconfig找到下列驅(qū)動(dòng)

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

編寫(xiě)程序

打開(kāi)你喜歡的編輯器,修改文件: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 的上下拉狀態(tài)

使用 hal_gpio_set_pull(gpio_pin_t pin, gpio_pull_status_t pull);來(lái)設(shè)置。這里我們?cè)O(shè)置 PA18 引腳為默認(rèn)上拉狀態(tài)。

hal_gpio_set_pull(GPIOA(18), GPIO_PULL_UP);

2.配置 GPIO 輸入輸出模式

使用 hal_gpio_set_direction(gpio_pin_t pin, gpio_direction_t direction);來(lái)設(shè)置 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);來(lái)設(shè)置 GPIO 的復(fù)用功能,這里配置為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);來(lái)配置 GPIO 的電平,這里配置PA18為高電平點(diǎn)亮 LED

hal_gpio_set_data(GPIOA(18), GPIO_DATA_HIGH);

5.完整的配置 GPIO

hal_gpio_set_pull(GPIOA(18), GPIO_PULL_UP); // 配置 GPIO 的上下拉狀態(tài)
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 的電平

以此類(lèi)推,我們同時(shí)配置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

結(jié)果

編譯固件后燒錄,可以看到三色 LED 燈同時(shí)亮起。

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

流水燈

為了實(shí)現(xiàn)流水燈,我們先實(shí)現(xiàn)一個(gè)sleep函數(shù)

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

然后實(shí)現(xiàn)流水燈邏輯即可,之前已經(jīng)設(shè)置過(guò)的GPIO狀態(tài)不需要重復(fù)設(shè)置。

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

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    16885

    瀏覽量

    349920
  • led燈
    +關(guān)注

    關(guān)注

    22

    文章

    1592

    瀏覽量

    107749
  • 開(kāi)發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    4896

    瀏覽量

    97059
  • GPIO
    +關(guān)注

    關(guān)注

    16

    文章

    1188

    瀏覽量

    51836

原文標(biāo)題:R128點(diǎn)燈指南

文章出處:【微信號(hào):gh_79acfa3aa3e3,微信公眾號(hào):全志在線(xiàn)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    使用全志R128實(shí)現(xiàn)LVGL的移植

    我們使用的開(kāi)發(fā)板是 R128-Devkit,需要開(kāi)發(fā) C906 核心的應(yīng)用程序,所以載入方案選擇 r128s2_module_c906
    的頭像 發(fā)表于 11-13 10:14 ?1481次閱讀
    使用全志<b class='flag-5'>R128</b>實(shí)現(xiàn)LVGL的移植

    全志R128 Devkit開(kāi)發(fā)板原理圖模塊介紹及使用說(shuō)明

    針對(duì) R128 模組,百問(wèn)科技推出了 R128 DevKit 開(kāi)發(fā)板作為快速開(kāi)發(fā)評(píng)估工具。 板載 R
    發(fā)表于 01-17 09:45

    小時(shí)候畫(huà)在手腕上的表,我用全志R128讓他真正動(dòng)了起來(lái)

    ——NWatch,并把他移植到了R128開(kāi)發(fā)板上。 項(xiàng)目簡(jiǎn)介 本項(xiàng)目基于ZakKemble的開(kāi)源項(xiàng)目NWatch,與原作者的NWatch不一樣的是,作者將其移植到DShanMCU-R128s2-DevKit
    發(fā)表于 11-09 17:03

    全志R128應(yīng)用開(kāi)發(fā)案例—點(diǎn)亮一顆LED燈

    我們使用的開(kāi)發(fā)板是 R128-Devkit,需要開(kāi)發(fā) C906 核心的應(yīng)用程序,所以載入方案選擇`r128s2_module_c906`
    發(fā)表于 10-09 16:46 ?408次閱讀
    全志<b class='flag-5'>R128</b>應(yīng)用<b class='flag-5'>開(kāi)發(fā)案</b>例—點(diǎn)亮一顆LED燈

    基于DShanMCU-R128s2-DevKit開(kāi)發(fā)智能手表

    本項(xiàng)目基于DShanMCU-R128s2-DevKit開(kāi)發(fā),用意是提供一個(gè)綜合的示例進(jìn)行學(xué)習(xí)參考。
    的頭像 發(fā)表于 11-01 15:32 ?739次閱讀
    基于<b class='flag-5'>DShanMCU-R128s2-DevKit</b><b class='flag-5'>開(kāi)發(fā)</b>智能手表

    DshanMCU-R128s2全志R128視頻教程

    基于DShanMCU-R128S2_DevKit的入門(mén)教程
    的頭像 發(fā)表于 12-26 14:05 ?548次閱讀

    DshanMCU-R128s2芯片簡(jiǎn)介

    DshanMCU-R128s2芯片簡(jiǎn)介
    的頭像 發(fā)表于 12-22 09:55 ?791次閱讀
    <b class='flag-5'>DshanMCU-R128s2</b>芯片簡(jiǎn)介

    DshanMCU-R128s2芯片參數(shù)

    MB LS PSRAM R128 S2)/8 channels (R128 S3) - One LEDC used to control the external intellige
    的頭像 發(fā)表于 12-26 10:57 ?1016次閱讀

    DshanMCU-R128s2 R128 模組

    R128-S2-N16R16 R128-S2 Arm Cortex-M33 C906 RISC-V HIFI5 DSP 1MByte 8Mbyte 8Mbyte 16M NOR Flash 2 Audio
    的頭像 發(fā)表于 12-26 11:11 ?963次閱讀
    <b class='flag-5'>DshanMCU-R128s2</b> <b class='flag-5'>R128</b> 模組

    DshanMCU-R128s2 R128 DevKit 開(kāi)發(fā)

    針對(duì) R128 模組,百問(wèn)科技推出了 R128 DevKit 開(kāi)發(fā)板作為快速開(kāi)發(fā)評(píng)估工具。 特性: 板載
    的頭像 發(fā)表于 12-22 12:02 ?567次閱讀
    <b class='flag-5'>DshanMCU-R128s2</b> <b class='flag-5'>R128</b> <b class='flag-5'>DevKit</b> <b class='flag-5'>開(kāi)發(fā)</b>板

    DshanMCU-R128s2 R128 EVT 開(kāi)發(fā)套件

    針對(duì) R128 模組,百問(wèn)科技推出了 R128 EVT 開(kāi)發(fā)套件作為快速開(kāi)發(fā)評(píng)估工具。
    的頭像 發(fā)表于 12-22 15:16 ?718次閱讀
    <b class='flag-5'>DshanMCU-R128s2</b> <b class='flag-5'>R128</b> EVT <b class='flag-5'>開(kāi)發(fā)</b>套件

    DshanMCU-R128s2 SDK 架構(gòu)與目錄結(jié)構(gòu)

    R128 S2 是全志提供的一款 M33(ARM)+C906(RISCV-64)+HIFI5(Xtensa) 三核異構(gòu) SoC,同時(shí)芯片內(nèi)部 SIP 有 1M SRAM、8M LSPSRAM、8M
    的頭像 發(fā)表于 12-22 15:57 ?665次閱讀
    <b class='flag-5'>DshanMCU-R128s2</b> SDK 架構(gòu)與目錄結(jié)構(gòu)

    DshanMCU-R128s2 Hello World!

    本文將介紹使用 R128 開(kāi)發(fā)板從串口輸出 Hello World 的方式介紹 SDK 軟件開(kāi)發(fā)流程。 載入方案 我們使用的開(kāi)發(fā)板是 R128-De
    的頭像 發(fā)表于 12-22 17:24 ?554次閱讀
    <b class='flag-5'>DshanMCU-R128s2</b> Hello World!

    DshanMCU-R128s2 配置引腳復(fù)用

    解析 sys_config.fex 的驅(qū)動(dòng)配置位于 licheertos-componentsawsys_config_script 中。 對(duì)于配置引腳復(fù)用,只需要修改 boardr128s2{PROJECT}configsys_config.fex 文件即可。 GPIO描述
    的頭像 發(fā)表于 12-22 17:36 ?605次閱讀

    DshanMCU-R128s2硬件設(shè)計(jì)參考

    R128 DevKit 開(kāi)發(fā)板 硬件工程開(kāi)源地址:https://oshwhub.com/gloomyghost/r128-module 電路圖
    的頭像 發(fā)表于 12-26 09:46 ?914次閱讀