拿到板子有一些时间了,一直在忙其它的项目,没有来的及时间来弄这个,今天开始第一篇。
开发平台:MDK5和rasc
注意要使用MDK5以上的版本
环境配置:
首先要上传两个非常重要的压缩包,免的大家到处找,麻烦。
要用KEIL开发
*附件:Renesas.RA_DFP.4.0.0.rar
特别要注意的是如果这个PACK双击无法安装,弹出如下错误:
直接拖动到pack installer中
相关的资料请在百度网盘中下载。https://pan.baidu.com/s/1I38O1_oX4cPG5hpMqfnrxQ
提取码: sfra
请安装下面这个文件中的软件:
setup_fsp_v3_0_0_rasc_v2021-04
下面上传一个配置步骤:
*附件:RA环境搭建说明书(keil)V1.1.pdf
这个里面说的不是很清楚 ,下面我描述一下。
1、将RASC集成到Keil
在“Menu Content”窗口中新建一个菜单项 “RA Smart Configurator” , 然后在“Command”一栏中输入 RASC 程序的路径,在“Initial Folder”一栏中输入 “$P” , 在“Arguments”一栏中输入:
--device $D --compiler ARMv6 configuration.xml
同理,在“Menu Content”窗口中再次新建一个菜单项 “Device Partition Manager” , 然后在“Command”一栏中输入 RASC 程序的路径,在“Initial Folder”一栏中输入 “$P” , 在“Arguments”一栏中输入:
`
-application com.renesas.cdt.ddsc.dpm.ui.dpmapplication configuration.xml "$L%L"
再次点开 Keil 软件菜单栏的“Tools”,我们可以看到 “RA Smart Configurator” 和 “Device Partition Manager” 这两个菜单项已经被加入到 Tools 栏上面了。
2、使用RASE新建一个工程
第一步:
选择芯片与C语言,和KEIL IDE
直接选择Flat Project就行
选择是否使用FreeRTOS
配置引脚定义:
3.回到KEIL中编译:
首先查看是否有设置好。
这里也很关键。
注意
SARMV8M.DLL
-MPU
TCM.DLL
-pCM33
这里如果没有添加进去,会无法下载。
4、 硬件连接
LED连接
按键:
5、软件实现核心代码:
点亮一个LED。
R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_04_PIN_04, BSP_IO_LEVEL_HIGH);
结构体
typedef enum e_bsp_io_level
{
BSP_IO_LEVEL_LOW = 0, ///< Low
BSP_IO_LEVEL_HIGH ///< High
} bsp_io_level_t;
GPIO口:
BSP_IO_PORT_04_PIN_04 = 0x0404, ///< IO port 4 pin 4
BSP_IO_PORT_04_PIN_05 = 0x0405, ///< IO port 4 pin 5
按键:
bsp_io_level_t key_Status[2] = {BSP_IO_LEVEL_HIGH, BSP_IO_LEVEL_HIGH};
BSP_IO_PORT_00_PIN_05 = 0x0005, ///< IO port 0 pin 5
BSP_IO_PORT_00_PIN_06 = 0x0006, ///< IO port 0 pin 6
LED流水灯:
R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_04_PIN_04, BSP_IO_LEVEL_HIGH);
R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_04_PIN_05, BSP_IO_LEVEL_LOW);
R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_00_PIN_02, BSP_IO_LEVEL_LOW);
vTaskDelay(pdMS_TO_TICKS(200));
R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_04_PIN_04, BSP_IO_LEVEL_LOW);
R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_04_PIN_05, BSP_IO_LEVEL_HIGH);
R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_00_PIN_02, BSP_IO_LEVEL_LOW);
vTaskDelay(pdMS_TO_TICKS(200));
R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_04_PIN_04, BSP_IO_LEVEL_LOW);
R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_04_PIN_05, BSP_IO_LEVEL_LOW);
R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_00_PIN_02, BSP_IO_LEVEL_HIGH);
vTaskDelay(pdMS_TO_TICKS(200));