前言 前一篇我们搭建了开发环境,已经能进行仿真调试,但是没有实现任何功能。这一篇我们就进行嵌入式领域HelloWorld级别的LED点灯测试。这里不使用复杂的fsp代码框架,fsp过于复杂且不友好,对于新手不利,也不适合学习。所以我们根据手册基于寄存器操作直接实现。 过程 原理图 使用P405 P404 P002驱动LED GPIO模块 参见参考的《19. I/O Ports》 相关寄存器 PCNTR1/PODR/PDR:控制输出方向和输出值 PCNTR2/EIDR/PIDR:只读,读引脚状态 PCNTR3/PORR/POSR:引脚置位或者复位操作 PCNTR4/EORR/EOSR:ELC控制引脚输出 PmnPFS/PmnPFS_HA/PmnPFS_BY:引脚功能配置 PWPR,PWPRS:写PmnPFS保护寄存器 PmSAR:端口 Security属性。如果为0则需要使用PWPRS解除写保护,否则使用PWPR。默认为为1. GPIO操作可以只使用PmnPFS进行功能配置,输入输出操作, 也可以使用PCNTR1~PCNTR4实现。 注意PmnPFS的操作需要先解除保护。 操作步骤 1. 先清除PWPR的B0WI 2. 置位 PWPR的 PFSWE 此时可以写PmnPFS 3. PmnPFS配置 4. 清除 PWPR的 PFSWE 5. 置位PWPR的B0WI此时不可以写PmnPFS 代码 GPIO的寄存器 R_PORT0_Type #define R_PORT0_BASE 0x40080000UL #define R_PORT0 ((R_PORT0_Type *) R_PORT0_BASE) #define R_PFS ((R_PFS_Type *) R_PFS_BASE) #define R_PFS_BASE 0x40080800UL 通过R_PORT-> 即可访问寄存器。
测试 仿真下载程序 可以查看外设寄存器 全速运行可以看到3个LED闪烁。 总结 以上参考芯片手册,基于寄存器操作实现了LED点灯的测试。演示了从零开始进行外设开发的过程,无非就是查阅手册,操作寄存器,实现对应外设功能,其他的UART,SPI等等更复杂的外设也无非如此。这样的过程有助于新手学习,对于新手建议一定要有这样的从零开始的过程,而不是一开始就使用工具,模板,自动生成代码,进行配置,那样知其然不知其所以然,不利于了解细节,不利于深入提高,对于嵌入式开发一定是任何细节都要了然于心。 参考 RA4M2 Group User’s Manual: Hardware |
只有小组成员才能发言,加入小组>>
1404个成员聚集在这个小组
加入小组【瑞萨RA2L1入门学习】+ MacOS安装e2studio
862 浏览 0 评论
712 浏览 0 评论
1433 浏览 0 评论
1130 浏览 0 评论
1596 浏览 0 评论
2044浏览 4评论
【RA-Eco-RA0E1-32PIN-V1.0开发板试用】RA0E1-32PIN-V1.0开发板测试一下点灯
2733浏览 3评论
使用Renesas Flash Programmer无法通过串口连接RL78/G22板子
2035浏览 2评论
3286浏览 2评论
【RA-Eco-RA2E1-48PIN-V1.0开发板试用】使用Jlink RTT完成printf打印功能
902浏览 2评论