RM新时代网站-首页

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

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

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

RA6M3 RT-Thread* LVGL HMI Board開發(fā)實踐指南-GPIO實踐

RTThread物聯(lián)網(wǎng)操作系統(tǒng) ? 來源:未知 ? 2023-11-30 19:05 ? 次閱讀
RT-Thread即將發(fā)布一系列RA6M3外設(shè)驅(qū)動的實踐指南,我們將使用瑞薩RA6M3 HMI-Board 開發(fā)板,帶領(lǐng)大家上手RT-Thread設(shè)備驅(qū)動, 本篇文章將介紹GPIO外設(shè)。GPIO是最常見的外設(shè),GPIO可以實現(xiàn)對IO的高低電平控制,讀取IO的電平,以及配置為中斷輸入后,在中斷函數(shù)中處理相關(guān)事件待。

開發(fā)板簡介

HMI-Board 為 RT-Thread 聯(lián)合瑞薩推出的高性價比圖形評估套件,相比較于傳統(tǒng)的 HMI +主控板,一套硬件即可實現(xiàn) HMI + IoT +控制的全套能力。依托于瑞薩高性能芯片 RA6M3 及 RT-Thread 軟件生態(tài),HMI Board 不僅硬件性能強勁,同時軟件生態(tài)豐富,助力開發(fā)者快速開發(fā)出 GUI 智能硬件產(chǎn)品。

開發(fā)環(huán)境搭建指南

詳見瑞薩RA6M3開發(fā)實踐指南-UART實踐(qq.com)

wKgaomVobY2Ae7UIAANZs5bcm58876.png

本章內(nèi)容

我們將使用RT-Thread Studio來創(chuàng)建工程,配置IO,最終實現(xiàn)使用板載三個按鍵控制板載的兩個LED的亮與滅。

模塊介紹:

板載的兩個LED燈接入了P209與P210,原理圖如下:

wKgaomVobY2ASk3HAAAvSOxm69o572.png

板載了三個按鍵,分別接入了P005、P006、P007。原理圖如下:

wKgaomVobY2AWZ85AAE1-RqSkUc360.png

開發(fā)軟件:

RT-ThreadStudio

步驟說明

1、新建工程

●安裝開發(fā)板SDK:

打開RT-Thread Studio,點擊SDK管理器,下載開發(fā)板SDK:

等待安裝結(jié)束后退出SDK管理器

●新建HMI_RA6M3_GPIO工程:

wKgaomVobY2AIORvAADsb5WATUI084.png

●選擇基于開發(fā)板創(chuàng)建工程

wKgaomVobY6ALCt_AAScvLvSAjI931.png

●輸入工程名稱點完成生成工程:

wKgaomVobY6Aflx9AANjramcmcc751.png

●生成工程預(yù)覽如下:

wKgaomVobY6AcUfFAAKw6pvNlLE813.png

2.配置RASC工程

●選擇RA Smart Configurator文件夾位置,只需要選到FSP文件夾就行了:

wKgaomVobY-AcK_4AAQpdhw4QH8484.png

●在RASC工程配置LED為輸出模式,按鍵為輸入模式,并設(shè)置為默認(rèn)的中斷號。保存并生成工程:

wKgaomVobY-AXpWtAAJq17qtZkk386.png

3. 編寫代碼

我們編寫hal_entry.c代碼如下:

/*

*Copyright(c)2006-2023,RT-ThreadDevelopmentTeam

*

*SPDX-License-Identifier:Apache-2.0

*

*ChangeLogs:

*DateAuthorNotes

*2021-10-10Shermanfirstversion

*/

#include

#include"hal_data.h"

#include

#defineUSER1_PINBSP_IO_PORT_02_PIN_09/*OnboardLEDpins*/

#defineUSER2_PINBSP_IO_PORT_02_PIN_10/*OnboardLEDpins*/

#defineTN0_PINBSP_IO_PORT_00_PIN_05/*OnboardTN0pins*/

#defineTN1_PINBSP_IO_PORT_00_PIN_06/*OnboardTN1pins*/

#defineTN2_PINBSP_IO_PORT_00_PIN_07/*OnboardTN2pins*/

staticuint8_tled_flash_state=0;

voidled_off(void*args)

{

rt_kprintf("bnt0down! ");

led_flash_state=0;

}

voidled_on(void*args)

{

rt_kprintf("bnt1down! ");

led_flash_state=1;

}

#defineTHREAD_PRIORITY25

#defineTHREAD_STACK_SIZE512

#defineTHREAD_TIMESLICE5

staticrt_thread_ttid1=RT_NULL;

/*線程1的入口函數(shù)*/

staticvoidthread_led_flash_entry(void*parameter)

{

staticuint32_tflash_cnt;

while(1)

{

if(led_flash_state==0){

rt_pin_write(USER1_PIN,PIN_LOW);

rt_pin_write(USER2_PIN,PIN_LOW);

}

elseif(led_flash_state==1){

rt_pin_write(USER1_PIN,PIN_HIGH);

rt_pin_write(USER2_PIN,PIN_HIGH);

}

elseif(led_flash_state==2){

if(flash_cnt<50)

{

rt_pin_write(USER1_PIN,PIN_HIGH);

rt_pin_write(USER2_PIN,PIN_LOW);

}

elseif(flash_cnt<100)

{

rt_pin_write(USER1_PIN,PIN_LOW);

rt_pin_write(USER2_PIN,PIN_HIGH);

}

else{

flash_cnt=0;

}

flash_cnt++;

}

rt_thread_mdelay(10);

}

}

voidkey_init(void)

{

/*按鍵0引腳為輸入模式*/

rt_pin_mode(TN0_PIN,PIN_MODE_INPUT_PULLUP);

/*綁定中斷,下降沿模式,回調(diào)函數(shù)名為beep_on*/

rt_pin_attach_irq(TN0_PIN,PIN_IRQ_MODE_FALLING,led_off,RT_NULL);

/*使能中斷*/

rt_pin_irq_enable(TN0_PIN,PIN_IRQ_ENABLE);

/*按鍵1引腳為輸入模式*/

rt_pin_mode(TN1_PIN,PIN_MODE_INPUT_PULLUP);

/*綁定中斷,下降沿模式,回調(diào)函數(shù)名為beep_on*/

rt_pin_attach_irq(TN1_PIN,PIN_IRQ_MODE_FALLING,led_on,RT_NULL);

/*使能中斷*/

rt_pin_irq_enable(TN1_PIN,PIN_IRQ_ENABLE);

/*按鍵2引腳為輸入模式*/

rt_pin_mode(TN2_PIN,PIN_MODE_INPUT_PULLUP);

}

voidhal_entry(void)

{

rt_kprintf(" HelloRT-Thread! ");

key_init();

/*創(chuàng)建線程1,名稱是thread1,入口是thread1_entry*/

tid1=rt_thread_create("thread_led",

thread_led_flash_entry,RT_NULL,

THREAD_STACK_SIZE,

THREAD_PRIORITY,THREAD_TIMESLICE);

/*如果獲得線程控制塊,啟動這個線程*/

if(tid1!=RT_NULL)

rt_thread_startup(tid1);

while(1)

{

if(rt_pin_read(TN2_PIN)==0)

{

rt_thread_delay(10);

if(rt_pin_read(TN2_PIN)==0)

led_flash_state=2;

rt_kprintf(" TN2pushdown! ");

}

rt_thread_delay(10);

}

}

4.代碼驗證

我們編譯下載后,我們按TN0,兩個LED亮,按下TN1,兩個LED燈滅,按下TN2,兩個LED燈交替閃爍。

章節(jié)總結(jié)

本章主要介紹了如果新建GPIO工程,RASC工程配置,驅(qū)動三個按鍵與三個LED燈的GPIO,涉及到了GPIO的輸出、輸入的配置,中斷輸入的配置與以及中斷回調(diào)函數(shù)的編寫。本文函蓋了GPIO的所有操作。

也可以閱讀帖子:

https://club.rt-thread.org/ask/article/ddc499ea99f1ea23.html

【購買HMIBoard】

wKgaomVobZCAfdWZAAie-EV0EwA449.png

———————End——————

新生態(tài),創(chuàng)未來 | 2023RT-Thread 開發(fā)者大會開啟報名

邀請你參加 2023 RT-Thread 開發(fā)者大會的大理由

1、刷新RT-Thread最新技術(shù)動態(tài)和產(chǎn)業(yè)服務(wù)能力

2、聆聽行業(yè)大咖分享,洞察產(chǎn)業(yè)趨勢

3、豐富的技術(shù)和產(chǎn)品展示,前沿技術(shù)發(fā)展和應(yīng)用

4、絕佳的實踐機會:AIOT、MPU、RISC-V...

5、精美伴手禮人手一份開發(fā)板盲盒和免費午餐

6、黑科技滿點~滴水湖地鐵口安排無人車接送至?xí)?/span>

立刻掃碼報名吧

wKgaomVobZCAPPGDAAAGEVCsn_o921.png


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

    關(guān)注

    31

    文章

    1285

    瀏覽量

    40080
  • RA6M3
    +關(guān)注

    關(guān)注

    0

    文章

    52

    瀏覽量

    110

原文標(biāo)題:RA6M3 RT-Thread* LVGL HMI Board開發(fā)實踐指南-GPIO實踐

文章出處:【微信號:RTThread,微信公眾號:RTThread物聯(lián)網(wǎng)操作系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    RT-Thread上CAN實踐

    開箱測試RT-Thread官方已完成了對英飛凌XMC7200EVK的移植,通過shell可以看到做好了uart3的console。本文將介紹如何進行RT-ThreadCan移植。接下來我們要完成CAN_FD的驅(qū)動移植,并正常啟動
    的頭像 發(fā)表于 11-13 01:03 ?1140次閱讀
    <b class='flag-5'>RT-Thread</b>上CAN<b class='flag-5'>實踐</b>

    課程上線 - RT-Thread應(yīng)用開發(fā)實踐課程上線慕課平臺啦!

    我們非常高興地告訴大家,由廣東機電職業(yè)技術(shù)學(xué)院的老師們制作的,使用《RT-Thread應(yīng)用開發(fā)實踐》作為教材的課程——嵌入式操作系統(tǒng)應(yīng)用,正式上線慕課平臺啦!歡迎各位想要系統(tǒng)學(xué)習(xí)RT-Thre
    的頭像 發(fā)表于 09-14 08:07 ?332次閱讀
    課程上線 - <b class='flag-5'>RT-Thread</b>應(yīng)用<b class='flag-5'>開發(fā)</b><b class='flag-5'>實踐</b>課程上線慕課平臺啦!

    獲獎公布!2024 RT-Thread全球巡回線下培訓(xùn)火熱來襲!報名提問有獎!

    用戶送出:5塊vision board開發(fā)板、5塊ART-PI開發(fā)板和5本《RT-Thread 設(shè)備驅(qū)動開發(fā)指南》書籍。 例:已報名北京站培
    發(fā)表于 08-20 14:15

    【好書推薦】RT-Thread設(shè)備驅(qū)動開發(fā)指南

    強烈,他們迫切地希望有一本可以指導(dǎo)他們在RT-Thread開發(fā)驅(qū)動的指南。為了解決開發(fā)者的燃眉之急,《RT-Thread設(shè)備驅(qū)動
    的頭像 發(fā)表于 08-01 08:35 ?617次閱讀
    【好書推薦】<b class='flag-5'>RT-Thread</b>設(shè)備驅(qū)動<b class='flag-5'>開發(fā)指南</b>

    lvgl移植到RT-Thread Nano后進入硬件錯誤中斷的原因?

    使用的是RT-Thread Nano的最新版,第一次移植,不知道是不是因為這個lvgl只能移植到標(biāo)準(zhǔn)版里? 嘗試過給lvgl的線程分配更大的棧,但是依舊會卡死在硬件錯誤中斷里。但只要把用戶的ui
    發(fā)表于 07-04 07:40

    66日杭州站RT-Thread線下workshop,探索RT-Thread混合部署新模式!

    66日下午我們將在杭州舉辦RT-Thread混合部署線下workshop,在瑞芯微RK3568平臺上實現(xiàn)同時運行RT-Thread和linux,本次workshop邀請到
    的頭像 發(fā)表于 05-28 08:35 ?441次閱讀
    <b class='flag-5'>6</b>月<b class='flag-5'>6</b>日杭州站<b class='flag-5'>RT-Thread</b>線下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式!

    2024 RT-Thread 全球技術(shù)大會演講議程發(fā)布!

    RT-ThreadGlobalTechConference(RT-ThreadGTC,RT-Thread全球技術(shù)大會)致力于圍繞RT-Thread基礎(chǔ)軟件技術(shù)發(fā)展、
    的頭像 發(fā)表于 05-16 08:34 ?539次閱讀
    2024 <b class='flag-5'>RT-Thread</b> 全球技術(shù)大會演講議程發(fā)布!

    【上海】5月25日-基于恩智浦MCX N系列MCU結(jié)合RT-Thread的應(yīng)用與實踐 線下培訓(xùn)

    5月25號,RT-Thread將攜手恩智浦共同舉辦基于恩智浦MCXN系列MCU結(jié)合RT-Thread的應(yīng)用與實踐線下培訓(xùn)。我們將為大家?guī)矶髦瞧諱CXN系列MCU的詳細(xì)介紹、精彩Demo展示、以及
    的頭像 發(fā)表于 05-13 18:19 ?845次閱讀
    【上海】5月25日-基于恩智浦MCX N系列MCU結(jié)合<b class='flag-5'>RT-Thread</b>的應(yīng)用與<b class='flag-5'>實踐</b> 線下培訓(xùn)

    新書發(fā)布——《實時操作系統(tǒng)應(yīng)用技術(shù):RT-Thread與ARM編程實踐

    RT-Thread又一本新書《實時操作系統(tǒng)應(yīng)用技術(shù)——基于RT-Thread與ARM的編程實踐》發(fā)布,標(biāo)志著RT-Thread生態(tài)和實時操作系統(tǒng)技術(shù)教育領(lǐng)域又迎來了一個重要里程碑。本書
    的頭像 發(fā)表于 05-11 08:35 ?793次閱讀
    新書發(fā)布——《實時操作系統(tǒng)應(yīng)用技術(shù):<b class='flag-5'>RT-Thread</b>與ARM編程<b class='flag-5'>實踐</b>》

    機器視覺RT-Thread Vision Board主要特點

    RT-Thread 與 瑞薩電子 攜手推出全新的硬件產(chǎn)品—— Vision?Board ! RT-Thread?Vision?Board 為工程師們提供了一個靈活、全面的
    的頭像 發(fā)表于 04-15 08:35 ?585次閱讀

    瑞薩與RT-Thread推出基于RT-Thread&amp;OpenMV的RA8人機交互方案

    瑞薩與戰(zhàn)略合作伙伴RT-Thread攜手于2024年2月底正式發(fā)布了全新的硬件產(chǎn)品——基于RT-Thread&OpenMV的RA8人機交互解決方案Vision Board
    的頭像 發(fā)表于 04-01 14:10 ?912次閱讀
    瑞薩與<b class='flag-5'>RT-Thread</b>推出基于<b class='flag-5'>RT-Thread</b>&amp;OpenMV的<b class='flag-5'>RA</b>8人機交互方案

    4月10日深圳場RT-Thread線下workshop,探索RT-Thread混合部署新模式!

    4月10日我們將在深圳福田舉辦RT-Thread混合部署線下workshop,在瑞芯微RK3568平臺上實現(xiàn)同時運行RT-Thread和linux,本次workshop邀請到RT-Thread資深嵌入式軟件工程師農(nóng)曉明老師為您講
    的頭像 發(fā)表于 03-27 11:36 ?814次閱讀
    4月10日深圳場<b class='flag-5'>RT-Thread</b>線下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式!

    3月27日-西安!RT-Thread工程師Meetup &amp;amp; Vision Board動手實踐

    期待能跟社區(qū)工程師朋友們坐下來面對面聊聊天,歡迎報名!與此同時,瑞薩RA8超高算力MCU巡回技術(shù)研討會也將在西安(3月27日)進行,RT-Thread將帶領(lǐng)RA8
    的頭像 發(fā)表于 03-25 08:34 ?371次閱讀
    <b class='flag-5'>3</b>月27日-西安!<b class='flag-5'>RT-Thread</b>工程師Meetup &amp;amp; Vision <b class='flag-5'>Board</b>動手<b class='flag-5'>實踐</b>

    RT-Thread設(shè)備驅(qū)動開發(fā)指南》基礎(chǔ)篇--以先楫bsp的hwtimer設(shè)備為例

    一、概述(一)RT-Thread設(shè)備驅(qū)動《RT-Thread設(shè)備驅(qū)動開發(fā)指南》書籍是RT-thread官方出品撰寫,系統(tǒng)講解RT-threa
    的頭像 發(fā)表于 02-24 08:16 ?1627次閱讀
    《<b class='flag-5'>RT-Thread</b>設(shè)備驅(qū)動<b class='flag-5'>開發(fā)指南</b>》基礎(chǔ)篇--以先楫bsp的hwtimer設(shè)備為例

    RT-Thread設(shè)備驅(qū)動開發(fā)指南基礎(chǔ)篇—以先楫bsp的hwtimer設(shè)備為例

    RT-Thread設(shè)備驅(qū)動開發(fā)指南》書籍是RT-thread官方出品撰寫,系統(tǒng)講解RT-thread IO設(shè)備驅(qū)動開發(fā)方法,從三方面進行講解
    的頭像 發(fā)表于 02-20 16:01 ?1683次閱讀
    <b class='flag-5'>RT-Thread</b>設(shè)備驅(qū)動<b class='flag-5'>開發(fā)指南</b>基礎(chǔ)篇—以先楫bsp的hwtimer設(shè)備為例
    RM新时代网站-首页