開(kāi)發(fā)板簡(jiǎn)介
HMI-Board 為 RT-Thread 聯(lián)合瑞薩推出的高性?xún)r(jià)比圖形評(píng)估套件,相比較于傳統(tǒng)的 HMI +主控板,一套硬件即可實(shí)現(xiàn) HMI + IoT +控制的全套能力。依托于瑞薩高性能芯片 RA6M3 及 RT-Thread 軟件生態(tài),HMI Board 不僅硬件性能強(qiáng)勁,同時(shí)軟件生態(tài)豐富,助力開(kāi)發(fā)者快速開(kāi)發(fā)出 GUI 智能硬件產(chǎn)品。
開(kāi)發(fā)環(huán)境搭建指南
詳見(jiàn)瑞薩RA6M3開(kāi)發(fā)實(shí)踐指南-UART實(shí)踐(qq.com)

本章內(nèi)容
我們將使用RT-Thread Studio來(lái)創(chuàng)建工程,配置IO,最終實(shí)現(xiàn)使用板載三個(gè)按鍵控制板載的兩個(gè)LED的亮與滅。
模塊介紹:
板載的兩個(gè)LED燈接入了P209與P210,原理圖如下:

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

開(kāi)發(fā)軟件:
RT-ThreadStudio
步驟說(shuō)明
1、新建工程
●安裝開(kāi)發(fā)板SDK:
打開(kāi)RT-Thread Studio,點(diǎn)擊SDK管理器,下載開(kāi)發(fā)板SDK:
等待安裝結(jié)束后退出SDK管理器
●新建HMI_RA6M3_GPIO工程:

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

●輸入工程名稱(chēng)點(diǎn)完成生成工程:

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

2.配置RASC工程
●選擇RA Smart Configurator文件夾位置,只需要選到FSP文件夾就行了:

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

3. 編寫(xiě)代碼
我們編寫(xiě)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;
/*線(xiàn)程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)建線(xiàn)程1,名稱(chēng)是thread1,入口是thread1_entry*/
tid1=rt_thread_create("thread_led",
thread_led_flash_entry,RT_NULL,
THREAD_STACK_SIZE,
THREAD_PRIORITY,THREAD_TIMESLICE);
/*如果獲得線(xiàn)程控制塊,啟動(dòng)這個(gè)線(xiàn)程*/
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.代碼驗(yàn)證
我們編譯下載后,我們按TN0,兩個(gè)LED亮,按下TN1,兩個(gè)LED燈滅,按下TN2,兩個(gè)LED燈交替閃爍。
章節(jié)總結(jié)
本章主要介紹了如果新建GPIO工程,RASC工程配置,驅(qū)動(dòng)三個(gè)按鍵與三個(gè)LED燈的GPIO,涉及到了GPIO的輸出、輸入的配置,中斷輸入的配置與以及中斷回調(diào)函數(shù)的編寫(xiě)。本文函蓋了GPIO的所有操作。
也可以閱讀帖子:
https://club.rt-thread.org/ask/article/ddc499ea99f1ea23.html
【購(gòu)買(mǎi)HMIBoard】

———————End———————
新生態(tài),創(chuàng)未來(lái) | 2023RT-Thread 開(kāi)發(fā)者大會(huì)開(kāi)啟報(bào)名
邀請(qǐng)你參加 2023 RT-Thread 開(kāi)發(fā)者大會(huì)的六大理由
1、刷新RT-Thread最新技術(shù)動(dòng)態(tài)和產(chǎn)業(yè)服務(wù)能力
2、聆聽(tīng)行業(yè)大咖分享,洞察產(chǎn)業(yè)趨勢(shì)
3、豐富的技術(shù)和產(chǎn)品展示,前沿技術(shù)發(fā)展和應(yīng)用
4、絕佳的實(shí)踐機(jī)會(huì):AIOT、MPU、RISC-V...
5、精美伴手禮人手一份開(kāi)發(fā)板盲盒和免費(fèi)午餐
6、黑科技滿(mǎn)點(diǎn)~滴水湖地鐵口安排無(wú)人車(chē)接送至?xí)?chǎng)
立刻掃碼報(bào)名吧

-
RT-Thread
+關(guān)注
關(guān)注
32文章
1632瀏覽量
45098 -
RA6M3
+關(guān)注
關(guān)注
0文章
52瀏覽量
622
原文標(biāo)題:RA6M3 RT-Thread* LVGL HMI Board開(kāi)發(fā)實(shí)踐指南-GPIO實(shí)踐
文章出處:【微信號(hào):RTThread,微信公眾號(hào):RTThread物聯(lián)網(wǎng)操作系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
RA6M3微控制器:高性能與多功能的完美融合
智能門(mén)鎖:基于RT-Thread與FRDM-MCXA156的多外設(shè)嵌入式實(shí)踐 | 技術(shù)集結(jié)
探索Renesas AIK - RA6M3:開(kāi)啟嵌入式開(kāi)發(fā)新旅程
【RA-Eco-RA6M4開(kāi)發(fā)板評(píng)測(cè)】WDT實(shí)踐
【RA-Eco-RA6M4開(kāi)發(fā)板評(píng)測(cè)】UART實(shí)踐
【RA-Eco-RA6M4開(kāi)發(fā)板評(píng)測(cè)】GPIO的使用
【CPKCOR-RA8D1】5、運(yùn)行RT-THREAD的適應(yīng)性調(diào)整
RT-Thread首款A(yù)I硬件搶先曝光!——RA8P1 Titan Board
【好書(shū)推薦】RT-Thread第22本相關(guān)書(shū)籍!《嵌入式實(shí)時(shí)操作系統(tǒng)開(kāi)發(fā)實(shí)踐》| 技術(shù)集結(jié)
2025年RT-Thread開(kāi)發(fā)者巡回培訓(xùn)報(bào)名正式啟動(dòng)!
明晚!基于RT-Thread 的 PID 控制實(shí)踐,從驅(qū)動(dòng)到算法到監(jiān)控,一次學(xué)會(huì)!| 問(wèn)學(xué)直播
【好書(shū)推薦】RT-Thread第20本相關(guān)書(shū)籍!《嵌入式實(shí)時(shí)操作系統(tǒng)RT-Thread原理與應(yīng)用》| 技術(shù)集結(jié)
【RA-Eco-RA6M4開(kāi)發(fā)板評(píng)測(cè)】5、基于FSP6.0.0適配RT-Thread
HMI-Board以太網(wǎng)通過(guò)mqtt連接云學(xué)習(xí)筆記 | 技術(shù)集結(jié)
【直播預(yù)告】《實(shí)時(shí)操作系統(tǒng)應(yīng)用技術(shù)—基于RT-Thread與ARM的編程實(shí)踐》教學(xué)脈絡(luò)及資源簡(jiǎn)介
RA6M3 RT-Thread* LVGL HMI Board開(kāi)發(fā)實(shí)踐指南-GPIO實(shí)踐
評(píng)論