一、概述
有幸參加RT-Thread的活動,體驗RT-Thread Studio 和瑞薩 CPK-RA2L1評估板。本篇文章主要講解如何在RT-Thread Studio 完成對RA2L1評估板的環(huán)境搭建以及gpio的輸入輸出檢測,通過LED顯示。
二、硬件準(zhǔn)備
首先準(zhǔn)備一個CPK-RA2L1評估板, 這個板子的芯片型號是 R7FA2L1AB2DFM
特性:
48MHz Cortex-M23,48 引腳
128KB/ 256KB 代碼閃存和 32KB SRAM(支持 ECC)
8KB 數(shù)據(jù)閃存,提供與 EEPROM 類似的數(shù)據(jù)存儲功能
內(nèi)部電壓調(diào)節(jié)電路
增強(qiáng)型電容式觸摸感應(yīng)單元 (CTSU2)
12 位 ADC,12 位 DAC,低功耗比較器
32 位通用 PWM 定時器,16 位通用 PWM 定時器,低功耗異步通用定時器
實時時鐘
串行通信接口(UART、簡單 SPI、簡單 I2C)
獨立的SPI接口 / I2C 多主接口
CAN
安全功能
加密功能
三、開發(fā)軟件安裝
1、軟件包準(zhǔn)備
目前CPK-RA2L1評估板的使用RT-Thread Studio開發(fā)
2、CPK-RA2L1 板級支持包安裝
將支持包中的文件分別放在如圖所示的路徑下
3、RT-Thread Studio
在RT-THread 官網(wǎng)下載安裝RT-Thread Studio完成安裝
四、新建工程
1、打開RT-Thread Studio
5、RA的入口代碼路徑在 src目錄下 hal_entry.c, 入口函數(shù)void hal_entry(void),把板子數(shù)據(jù)線和電腦連接好后,點擊小鐵錘開始編譯官方的點燈demo,控制臺會輸出編譯的信息,在點擊下載圖標(biāo),生成的二進(jìn)制文件就被下載到開發(fā)板中(需要安裝串口驅(qū)動)
五、代碼編寫
上面的步驟完成了開發(fā)環(huán)境的搭建和基本驗證工作,下面開始簡單gpio 點燈操作和按鍵輸入驗證。官方的demo中已經(jīng)寫好了LED1上電不定的閃爍功能,key1 按鍵按下觸發(fā)終端打印pin number的操作,我們就基于這個demo讓key1按下的時候點亮Led2, 再次按下熄滅的功能。
首先查找原理圖,確認(rèn)LED1, LED2,Key1, Debug 串口位置。
LED1 對應(yīng) P502 高有效
LED2 對應(yīng) P501 高有效
Key1 對應(yīng) P004
debug串口查看,在RT-Thread Studio 中點擊剛才配置好的RA Smart Configurator,然后如下操作能查看到debug 使用的串口ping
Rx P110 Tx P109
查看原理圖查找在板子上的實際位置
將板子的Rx與USB轉(zhuǎn)TTL的Tx連接, Tx與調(diào)試器的Rx連接,板子的GND連接調(diào)試器的GND
編寫代碼,LED1不停的亮滅間隔500ms, LED2等待按鍵S1按下亮,再按下滅,同時串口打印LED2的狀態(tài)
/*
Copyright (c) 2006-2021, RT-Thread Development Team
SPDX-License-Identifier: Apache-2.0
Change Logs:
Date Author Notes
2023-02-25 DYC first version
/
#include
#include "hal_data.h"
#include
#define LED1_PIN "P502" / Onboard LED1 pins /
#define LED2_PIN "P501" / Onboard LED2 pins */
#define USER_INPUT "P004"
rt_uint32_t led2_pin = 0;
void hal_entry(void)
{
rt_kprintf("nHello RT-Thread!n");
rt_uint32_t led1_pin = rt_pin_get(LED1_PIN);
while (1)
{
rt_pin_write(led1_pin, PIN_HIGH);
rt_thread_mdelay(500);
rt_pin_write(led1_pin, PIN_LOW);
rt_thread_mdelay(500);
}
}
void irq_callback_test(void args)
{
rt_kprintf("n IRQ03 triggered n");
static int out ;
led2_pin = rt_pin_get(LED2_PIN);
out = rt_pin_read(led2_pin) ? PIN_LOW:PIN_HIGH;
if (PIN_LOW == out)
rt_kprintf("n LED2 offn");
else {
rt_kprintf("n LED2 onn");
}
rt_pin_write(led2_pin,out);
}
void icu_sample(void)
{
/ init */
rt_uint32_t pin = rt_pin_get(USER_INPUT);
rt_kprintf("n pin number : 0x%04X n", pin);
rt_err_t err = rt_pin_attach_irq(pin, PIN_IRQ_MODE_RISING, irq_callback_test, RT_NULL);
if (RT_EOK != err)
{
rt_kprintf("n attach irq failed. n");
}
err = rt_pin_irq_enable(pin, PIN_IRQ_ENABLE);
if (RT_EOK != err)
{
rt_kprintf("n enable irq failed. n");
}
}
MSH_CMD_EXPORT(icu_sample, icu sample);
編譯下載到開發(fā)板,按S1是沒有反應(yīng)的,先在RT-Thread Studio 的終端打開串口
輸入和代碼中寫的對應(yīng)的入口 icu_sample,打開中斷監(jiān)聽按鍵,這時候按一下LED2亮,再按一下滅同時終端上打印了LED2的狀態(tài)
到這里就完成了GIOP的點燈操作和輸入檢測完畢。
-
比較器
+關(guān)注
關(guān)注
14文章
1658瀏覽量
107429 -
LED顯示
+關(guān)注
關(guān)注
0文章
361瀏覽量
38156 -
電容式觸摸屏
+關(guān)注
關(guān)注
4文章
64瀏覽量
30220 -
GPIO
+關(guān)注
關(guān)注
16文章
1216瀏覽量
52377 -
RT-Thread
+關(guān)注
關(guān)注
31文章
1305瀏覽量
40386
發(fā)布評論請先 登錄
相關(guān)推薦
如何在RT-Thread Studio開發(fā)環(huán)境下使用nrf24L01軟件包?
如何使用RT-Thread Studio創(chuàng)建支持HPM6750開發(fā)板的RT-Thread項目
如何在CPK-RA6M4 MCU評估板上讓RT-Thread運行起來
基于RT-Thread Studio的CPK-RA6M4開發(fā)板環(huán)境搭建方案推薦
基于 RT-Thread Studio的CPK-RA6M4 開發(fā)板環(huán)境搭建
如何在RT-Thread Studio完成對RA2L1評估板的環(huán)境搭建以及gpio的輸入輸出檢測?
使用RT-Thread Studio和CPK-RA2L1板點亮0.96寸OLED ssd1306
RT-Thread與Renesas RA2L1實現(xiàn)1.8寸TFT屏幕顯示的步驟
基于RA2L1開發(fā)板的初識點燈
RT-Thread Studio快速配置GPIO進(jìn)行點燈
![<b class='flag-5'>RT-Thread</b> <b class='flag-5'>Studio</b>快速配置<b class='flag-5'>GPIO</b>進(jìn)行點燈](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
AB32VG1 RT-Thread 開發(fā)環(huán)境搭建
![AB32VG<b class='flag-5'>1</b> <b class='flag-5'>RT-Thread</b> 開發(fā)<b class='flag-5'>環(huán)境</b><b class='flag-5'>搭建</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
RT-Thread Studio驅(qū)動SD卡
![<b class='flag-5'>RT-Thread</b> <b class='flag-5'>Studio</b>驅(qū)動SD卡](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
基于RT-Thread Studio學(xué)習(xí)
![基于<b class='flag-5'>RT-Thread</b> <b class='flag-5'>Studio</b>學(xué)習(xí)](https://file1.elecfans.com/web2/M00/82/C1/wKgaomRhn_SAM7fdAACQhFt0KEA325.jpg)
RA6M3 RT-Thread* LVGL HMI Board開發(fā)實踐指南-GPIO實踐
![<b class='flag-5'>RA</b>6M3 <b class='flag-5'>RT-Thread</b>* LVGL HMI Board開發(fā)實踐指南-<b class='flag-5'>GPIO</b>實踐](https://file1.elecfans.com//web2/M00/B2/07/wKgaomVobY2Ae7UIAANZs5bcm58876.png)
評論