【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灭
}
}
按键实验结果
|