点亮LED
本文主要参考文章:【致敬未来的攻城狮计划】— 连续打卡第十一天:FSP固件库开发点亮第一个灯。_嵌入式up的博客-CSDN博客
在32阶段我们已经接触过类似做法了。初始化引脚模式(可以手动库函数,或者在工具包图形化界面里配置),设置引脚输出值。
设置 FSP Smart Configurator
像上次一样创建一个项目。
首先我们翻一下RA2E1的数据手册看看led在哪。
如图所示,一红一蓝,502 501,输出高电平亮。
因此 configurator 里的pin如图所示设置501 502为output initial high
配置完成后点击右上角 generate project content,输出更新配置到该项目中。
Keil代码编写
接下来就是编写keil里,驱动两个led灯输出高电平的部分了。
hal_entry.c 是相当于 main.c 的入口函数。其他都是 configurator 提供的配置函数。
引脚设置已经设置好了。我们打开 pin_data.c 可以看到:
这就代表确实初始化配置加进代码里了。
然后在 hal_entry.c 里是通过这个 open 函数在 warm_start 里初始化了。
接下来我们需要一个写入位函数。在 r_ioport.c 里。
参数1:固定参数,传入 &p_ctrl。
参数2:引脚,老方法 goto the definition
参数3:电平。
然后就简单了,只需要在主函数里调用write函数写亮led。
void hal_entry(void)
{
/* TODO: add your own code here */
while(1){
R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_05_PIN_01, BSP_IO_LEVEL_HIGH);
R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_05_PIN_02, BSP_IO_LEVEL_HIGH);
}
#if BSP_TZ_SECURE_BUILD
/* Enter non-secure code */
R_BSP_NonSecureEnter();
#endif
}