48|0

2

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

【Follow me第二季第3期】入门任务---调试程序、Blink及按键测试 [复制链接]

  本帖最后由 quansirx 于 2024-11-16 14:28 编辑

一、

瑞萨EK-RA6M5开发板支持e2 studio、IAR、Keil MDK等IDE工具进行编程开发,我使用官方基于Eclipse开源IDE制作的e2 studio,由于是官方IDE工具因此开发支持力度相对好一些。

e2 studio的安装可以参考老师的讲解视频,以下来进行调试示例程序,LED等Blink,按键操作等内容

二、e2 studio调试示例程序

下载Renesas官方FSP例程,网址链接为

链接已隐藏,如需查看请登录或者注册

 

以上为解压的文件内容,打开e2 studio工具并导入开发板quickstart例程

  鼠标右击构建项目,编译通常后开始项目调试

  调试选项选第3个

 

打开插件终端工具,设置参数如上图所示,串口通信波特率为115200

 

终端菜单选项:

键盘按下数字键1,开发板基本信息一览

 

QSPI、OSPI Flash读写速度测试

 

三、Blink、按键测试

3.1 LED Blink

新建e2 studio 基本FSP工程

 

TrustZone设置

 

 

屏幕剪辑的捕获时间: 2024-11-16 12:38

不使用RTOS

 

点击创建最小基本工程

 

基本工程结构一览

板载LED原理图

 

在原理图找到板载LED的引脚连接情况,LED1连接在P006引脚

打开配置xml文件

选中Pins这一栏,输入引脚编号P006以自动定位到该引脚配置界面

板载LED1为共阴极接法,于是设P006默认输出高电平

P001引脚配置的初始化代码

烧录固件至开发板

LED1成功点亮

 

添加循环点亮LED代码,在hal_entry函数处

void hal_entry(void)
{
    /* TODO: add your own code here */

    while(1){

        R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_00_PIN_06, BSP_IO_LEVEL_HIGH); //LED1亮
        R_BSP_SoftwareDelay(500, BSP_DELAY_UNITS_MILLISECONDS); //延时500ms

        R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_00_PIN_06, BSP_IO_LEVEL_LOW); //LED1灭亮
        R_BSP_SoftwareDelay(500, BSP_DELAY_UNITS_MILLISECONDS); //延时500ms

    }

#if BSP_TZ_SECURE_BUILD
    /* Enter non-secure code */
    R_BSP_NonSecureEnter();
#endif
}

实验效果

 

3.2 按键测试

查看按键原理图

 

按键2连接至P004引脚,引脚状态默认为上拉,按键按下后引脚电平为低电平

xml配置

  示例代码

void hal_entry(void)
{
    /* TODO: add your own code here */
    uint8_t t=150;
    while(1){

        R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_00_PIN_06, BSP_IO_LEVEL_HIGH); //LED3亮
        R_BSP_SoftwareDelay(t, BSP_DELAY_UNITS_MILLISECONDS); //延时500ms

        R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_00_PIN_06, BSP_IO_LEVEL_LOW); //LED1灭亮
        R_BSP_SoftwareDelay(t, BSP_DELAY_UNITS_MILLISECONDS); //延时500ms

        KeyScan(BSP_IO_PORT_00_PIN_04);
    }

#if BSP_TZ_SECURE_BUILD
    /* Enter non-secure code */
    R_BSP_NonSecureEnter();
#endif
}
void KeyScan(bsp_io_port_pin_t key);

void KeyScan(bsp_io_port_pin_t key){
    bsp_io_level_t key_state;

    R_IOPORT_PinRead(&g_ioport_ctrl, key, &key_state);

    if(key_state==BSP_IO_LEVEL_LOW){
        //软件消抖
        R_BSP_SoftwareDelay(10, BSP_DELAY_UNITS_MILLISECONDS);
        //点亮LED2
        R_IOPORT_PinWrite(&g_ioport_ctrl, LED2, BSP_IO_LEVEL_HIGH); //LED2亮
        //等待按键松开
        while(key_state==BSP_IO_LEVEL_LOW){
            R_IOPORT_PinRead(&g_ioport_ctrl, key, &key_state);
        }
        //熄灭LED2
        R_IOPORT_PinWrite(&g_ioport_ctrl, LED2, BSP_IO_LEVEL_LOW); //LED2灭
    }

}

按键实验结果

 

点赞 关注
 
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表