时间:2025-08-05 14:50
人气:
作者:admin
“RA MCU众测宝典”SysTick专题来啦!在上个的环境搭建专题中,我们已经筑牢了开发基础,而这次,我们要聚焦一个让程序“有节奏”运行的关键角色——SysTick定时器。瑞萨嵌入式小百科将和大家一起,基于【RA-Eco-RA0E1-32PIN-V1.0】开发板,一步步实现用 SysTick定时器点灯,感受时间控制在嵌入式开发中的奇妙作用。
开启宝典
#Systick定时器就是系统一个简单的24位的倒计数定时器。

点击可查看大图
开发板软件mdk5调试时可显示运行时寄存器的状态:

点击可查看大图
打开RASC,先选好安装目录,以及工程名称选择好芯片。

点击可查看大图
以及编译工具一路next就可以创建,修改pin引脚,时钟和引脚图:

点击可查看大图
工程最后在Summary中,可以看到工程生成选项,点击以后就可以mdk工程打开MDK工程。

点击可查看大图
创建了就完成了MDK工程的创建。

点击可查看大图
打开MDK工程在,在hal_entry.c中 /* TODO: add your own code here */ 加入自己代码。
左右滑动查看完整内容
while(1)
{
R_IOPORT_PinWrite(&g_ioport_ctrl,BSP_IO_PORT_01_PIN_03,0);
R_IOPORT_PinWrite(&g_ioport_ctrl,BSP_IO_PORT_01_PIN_12,0);
Systick1();
R_IOPORT_PinWrite(&g_ioport_ctrl,BSP_IO_PORT_01_PIN_03,1);
R_IOPORT_PinWrite(&g_ioport_ctrl,BSP_IO_PORT_01_PIN_12,0);
Systick1();
R_IOPORT_PinWrite(&g_ioport_ctrl,BSP_IO_PORT_01_PIN_03,1);
R_IOPORT_PinWrite(&g_ioport_ctrl,BSP_IO_PORT_01_PIN_12,1);
Systick1();
}
在void hal_entry(void)程序前加入Systick1()
左右滑动查看完整内容
voidSystick1()
{
SysTick->CTRL=0;
SysTick->LOAD=0xFFFFFF;//????255~(256???)
SysTick->VAL=0;//??????????
SysTick->CTRL=5;//??SysTick???????????
while((SysTick->CTRL&0x00010000)==0);//????????
SysTick->CTRL=0;
}
编译完成。
左右滑动查看完整内容
Program Size: Code=1736RO-data=232RW-data=0ZI-data=1652 FromELF: creating hex file... After Build - User command #1: cmd /c"start "Renesas" /w cmd /c ""E:lst a0e1-20240827154516123FSP_Projectnew asc_launcher.bat""E:lst a0e1-20240827154516123FSP_Projectnew asc_version.txt"-nosplash --launcher.suppressErrors --gensmartbundle --compiler ARMv6 --devicefamily ra"E:lst a0e1-20240827154516123FSP_Projectnewconfiguration.xml""E:lst a0e1-20240827154516123FSP_ProjectnewObjectsFSP_Project.axf"2>"%TEMP% asc_stderr.out""" ".ObjectsFSP_Project.axf"-0Error(s),44Warning(s). Build Time Elapsed: 00:00:29```
* 烧录达到预期状态。*
以上就是【RA-Eco-RA0E1-32PIN-V1.0】开发板在Systick方面的评测内容。
从工程创建时的引脚与时钟配置,到代码中通过 SysTick精准控制LED的亮灭状态,每一个步骤都展现了定时器在嵌入式开发中的价值。
如果你在实操中对代码逻辑或配置细节有不同见解,欢迎在评论区留言交流。