Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
RT-Thread一般讨论
瑞萨-RTT活动
CPK-RA2L1评估板 GPIO (1)
发布于 2023-02-25 14:20:56 浏览:611
订阅该版
[tocm] # 一、概述 有幸参加RT-Thread的活动,体验RT-Thread Studio 和瑞萨 CPK-RA2L1评估板。本篇文章主要讲解如何在RT-Thread Studio 完成对RA2L1评估板的环境搭建以及gpio的输入输出检测,通过LED显示。 # 二、硬件准备 首先准备一个CPK-RA2L1评估板, 这个板子的芯片型号是 R7FA2L1AB2DFM ![1—板子实拍.png](https://oss-club.rt-thread.org/uploads/20230225/ba1a680c341c95629c0afa8ba7825bad.png.webp) 特性: - 48MHz Cortex-M23,48 引脚 - 128KB/ 256KB 代码闪存和 32KB SRAM(支持 ECC) - 8KB 数据闪存,提供与 EEPROM 类似的数据存储功能 - 内部电压调节电路 - 增强型电容式触摸感应单元 (CTSU2) - 12 位 ADC,12 位 DAC,低功耗比较器 - 32 位通用 PWM 定时器,16 位通用 PWM 定时器,低功耗异步通用定时器 - 实时时钟 - 串行通信接口(UART、简单 SPI、简单 I2C) - 独立的SPI接口 / I2C 多主接口 - CAN - 安全功能 - 加密功能 # 三、开发软件安装 ### 1、软件包准备 目前CPK-RA2L1评估板的使用RT-Thread Studio开发,使用RA的软件包是3.5.0版本(FSP V3.5.0),可在github上下载(下载地址:https://github.com/renesas/fsp/releases/tag/v3.5.0 )选择setup_fsp_v3_5_0_rasc_v2021-10.exe,*目前官网上的高版本无法正常使用*。 [CPKsBSP_FSP3.5.0.zip](https://club.rt-thread.org/file_download/fe737d18eea950e6) ### 2、CPK-RA2L1 板级支持包安装 具体安装过程可参考Renesas官网文档《向FSP中添加CPK评估板的BSP 》 https://www.renesas.cn/cn/zh/document/gde/1596896?language=zh&r=1527191 ![3—— 版级支持包.png](https://oss-club.rt-thread.org/uploads/20230225/f38d20a624529bfe60a1da745934d6d2.png) 将支持包中的文件分别放在如图所示的路径下 ![4—— xml.png](https://oss-club.rt-thread.org/uploads/20230225/fe83189744d709a8311bef4deac10699.png.webp) ![5_pack.png](https://oss-club.rt-thread.org/uploads/20230225/82dede64652592359dd1788dad2b50d2.png.webp) ### 3、RT-Thread Studio 在RT-THread 官网下载安装RT-Thread Studio完成安装 ![6——RT-Thread Studio.png](https://oss-club.rt-thread.org/uploads/20230225/a6ae837573f743ad7cd79dcb71b7c826.png.webp) # 四、新建工程 1、打开RT-Thread Studio ![7_界面RT-Thread Studio.png](https://oss-club.rt-thread.org/uploads/20230225/5284bd0b1c45278fb40e6f935dbfeb31.png.webp) 2、选择RT-Thread Studio 左上角文件 -> 新建 -> RT-Thread 项目 ![8.png](https://oss-club.rt-thread.org/uploads/20230225/a0bd9b5d476b4915f590fca1be13ce63.png.webp) 3、填写项目名称保存路径,选择基于开发板配置,选择具体开发板,调试器选择。选定后右边会有芯片的datasheet以及硬件手册 ![9.png](https://oss-club.rt-thread.org/uploads/20230225/a49f0b6fe340fe23944a5dccf8146bb0.png.webp) 4、创建工程后双击 RA Smart Configurator 配置fps,找到刚才安装的fps_3.5安装的路径后确定即可 ![10.png](https://oss-club.rt-thread.org/uploads/20230225/a19bd59ae356cf6468dac07ebe55b11e.png.webp) 5、RA的入口代码路径在 src目录下 hal_entry.c, 入口函数void hal_entry(void),把板子数据线和电脑连接好后,点击小铁锤开始编译官方的点灯demo,控制台会输出编译的信息,在点击下载图标,生成的二进制文件就被下载到开发板中(需要安装串口驱动) ![11.png](https://oss-club.rt-thread.org/uploads/20230225/1ffbde14b03a09d0127d602493596045.png.webp) ![12.png](https://oss-club.rt-thread.org/uploads/20230225/ac74e190f6589ac6fea4ffda235eb172.png.webp) # 五、代码编写 上面的步骤完成了开发环境的搭建和基本验证工作,下面开始简单gpio 点灯操作和按键输入验证。官方的demo中已经写好了LED1上电不定的闪烁功能,key1 按键按下触发终端打印pin number的操作,我们就基于这个demo让key1按下的时候点亮Led2, 再次按下熄灭的功能。 首先查找原理图,确认LED1, LED2,Key1, Debug 串口位置。原理图在CPK-RA2L1_RA2E1设计文件包中,这里我先上传 [CPK-RA2L1_RA2E1设计文件包.zip](https://club.rt-thread.org/file_download/b7bcc746fa3d2bb5) LED1 对应 P502 高有效 LED2 对应 P501 高有效 Key1 对应 P004 ![13.png](https://oss-club.rt-thread.org/uploads/20230225/8b06b7ad168381ee8464b5735f17858a.png.webp) debug串口查看,在RT-Thread Studio 中点击刚才配置好的RA Smart Configurator,然后如下操作能查看到debug 使用的串口ping Rx P110 Tx P109 ![14.png](https://oss-club.rt-thread.org/uploads/20230225/b54573ff058ecca2a7a9061562134d9f.png.webp) 查看原理图查找在板子上的实际位置 ![15.png](https://oss-club.rt-thread.org/uploads/20230225/6bf4a915c23195c8cdcba277bc78e306.png.webp) 将板子的Rx与USB转TTL的Tx连接, Tx与调试器的Rx连接,板子的GND连接调试器的GND ![16——debug.png](https://oss-club.rt-thread.org/uploads/20230225/1b586abb565096166f4960c2e2bfcf67.png.webp) 编写代码,LED1不停的亮灭间隔500ms, LED2等待按键S1按下亮,再按下灭,同时串口打印LED2的状态 ```c /* * 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 off\n"); else { rt_kprintf("\n LED2 on\n"); } 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); ``` 编译下载到开发板,按S1是没有反应的,先在RT-Thread Studio 的终端打开串口 ![17.png](https://oss-club.rt-thread.org/uploads/20230225/f5a3df07961b412331ed0954b30938c7.png.webp) 输入和代码中写的对应的入口 icu_sample,打开中断监听按键,这时候按一下LED2亮,再按一下灭同时终端上打印了LED2的状态 ![18.png](https://oss-club.rt-thread.org/uploads/20230225/559b0ca2e12070d8bdfb832873f71909.png) ![19.jpg](https://oss-club.rt-thread.org/uploads/20230225/6d9c7cb2ee02ff1b23c0e37cb20d4ddf.jpg.webp) 到这里就完成了GIOP的点灯操作和输入检测完毕,入门结束,感谢阅读。🙂
5
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
快乐小鸟
这家伙很懒,什么也没写!
文章
5
回答
0
被采纳
0
关注TA
发私信
相关文章
1
有关动态模块加载的一篇论文
2
最近的调程序总结
3
晕掉了,这么久都不见layer2的踪影啊
4
继续K9ii的历程
5
[GUI相关] FreeType 2
6
[GUI相关]嵌入式系统中文输入法的设计
7
20081101 RT-Thread开发者聚会总结
8
嵌入式系统基础
9
linux2.4.19在at91rm9200 上的寄存器设置
10
[转]基于嵌入式Linux的通用触摸屏校准程序
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
WIZnet_W5500
UART
ota在线升级
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
编译报错
Debug
SFUD
msh
rt_mq_消息队列_msg_queue
keil_MDK
ulog
MicroPython
C++_cpp
本月问答贡献
出出啊
1517
个答案
342
次被采纳
小小李sunny
1443
个答案
289
次被采纳
张世争
805
个答案
174
次被采纳
crystal266
547
个答案
161
次被采纳
whj467467222
1222
个答案
148
次被采纳
本月文章贡献
出出啊
1
篇文章
4
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
1
次点赞
crystal266
2
篇文章
2
次点赞
whj467467222
2
篇文章
1
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部