一、概述
有幸参加rt-thread的活动,体验rt-thread studio 和瑞萨 cpk-ra2l1评估板。本篇文章主要讲解如何在rt-thread studio 完成对ra2l1评估板的环境搭建以及gpio的输入输出检测,通过led显示。
二、硬件准备
首先准备一个cpk-ra2l1评估板, 这个板子的芯片型号是 r7fa2l1ab2dfm
特性:
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开发
2、cpk-ra2l1 板级支持包安装
将支持包中的文件分别放在如图所示的路径下
3、rt-thread studio
在rt-thread 官网下载安装rt-thread studio完成安装
四、新建工程
1、打开rt-thread studio
5、ra的入口代码路径在 src目录下 hal_entry.c, 入口函数void hal_entry(void),把板子数据线和电脑连接好后,点击小铁锤开始编译官方的点灯demo,控制台会输出编译的信息,在点击下载图标,生成的二进制文件就被下载到开发板中(需要安装串口驱动)
五、代码编写
上面的步骤完成了开发环境的搭建和基本验证工作,下面开始简单gpio 点灯操作和按键输入验证。官方的demo中已经写好了led1上电不定的闪烁功能,key1 按键按下触发终端打印pin number的操作,我们就基于这个demo让key1按下的时候点亮led2, 再次按下熄灭的功能。
首先查找原理图,确认led1, led2,key1, debug 串口位置。
led1 对应 p502 高有效
led2 对应 p501 高有效
key1 对应 p004
debug串口查看,在rt-thread studio 中点击刚才配置好的ra smart configurator,然后如下操作能查看到debug 使用的串口ping
rx p110 tx p109
查看原理图查找在板子上的实际位置
将板子的rx与usb转ttl的tx连接, tx与调试器的rx连接,板子的gnd连接调试器的gnd
编写代码,led1不停的亮灭间隔500ms, led2等待按键s1按下亮,再按下灭,同时串口打印led2的状态
/*
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);
编译下载到开发板,按s1是没有反应的,先在rt-thread studio 的终端打开串口
输入和代码中写的对应的入口 icu_sample,打开中断监听按键,这时候按一下led2亮,再按一下灭同时终端上打印了led2的状态
到这里就完成了giop的点灯操作和输入检测完毕。
三星,苹果依旧是全球前两大半导体芯片买家 前10中有三家中国公司
机器人对齐电极臂前的执行步骤
MOTOACTV评测 不折不扣的先驱者角色
技术资讯 I 电源分配网络阻抗分析概述
LED驱动控制专用电路VK1650概述及功能
如何在RT-Thread Studio完成对RA2L1板的环境搭建以及gpio的输入输出检测?
江波龙公司收到商业秘密侵权案一审判决
三相交流异步电动机的星形接法和三角形接法的区别
测量结温或芯片温度的方法有几种
电容位移传感器原理和特性
魅族Pro7什么时候上市?魅族Pro7最新消息:魅族Pro7外观创新全面升级,魅族Pro7跑分曝光性能强悍
新智元与极客邦科技合作打造百万级产业服务平台,共推人工智能生态发展
rsa加密算法详解与举例说明
风河模式匹配引擎为NFV提供更高性能与安全性
学技术 | Infineon WLC1115无线充电解决方案–规格概述
浅谈汽车传感器
HiFi音质重要环节-音响架
iOS14.2正式版修复了哪些错误
可编程逻辑器件随着半导体集成电路的4个阶段
冷关断式温度控制电路图_低温冷关断式温度控制电路图