打印

【CPKCOR-RA8D1B核心板】3、离不开的点灯——GPIO输出操作

[复制链接]
17|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
       本次使用的开发板不能以简单点灯操作为内容,一起超越简单的点灯实验,不过依然是迈不开点灯这一步,所以也是以点灯来作为本次活动编程体验的开始,熟悉核心板的开发流程和节奏。
       首先我们要了解一下硬件部分:
       我们首先实现的就是这个LED的控制,上电后可以看到这个LED是没有点亮的,那么就下来我们就使用e2studio进行程序的控制,打开软件,之前我们创建了一个小测试工程,接下来就在这个的基础上进行我们的程序编写。
       在此之前我们看一下时钟配置:
       开发板的主晶振采用的是24MHz,我们如果要使用USB HS,在设计的时候只能选择12/24/48MHz晶振,要注意。注意修改外部时钟参数,初始建立的的时候外部时钟默认是20MHz的:
       通过简单配置使其主频依然输出是480MHz;
       接下来就进行我们的引脚配置,上图可以看到我们使用LED控制的引脚是PA01,有两种方法进行引脚的配置:
       第一种是列表配置方法:
       另外一种是视图配置方法:
       这种方法还是要到列表里看一下具体配置是否符合我们的要求。
       然后就可以生成初始化代码了,点击那个绿色图标,相关代码存储在这里:
       g_bsp_pin_cfg是个结构体,在pin_data.c文件中:
       可以看到我们在配置文件配置引脚已经初始化完成了。
       在使用RTOS时,程序从main函数开始进行线程调度;而在没有使用RTOS时,C语言程序的入口函数main函数调用了hal_entry函数。由于我们新建的工程没有选用RTOS,因此,用户程序从hal_entry函数开始执行。用户可以直接打开"\src\hal_entry.c"文件,在hal_entry函数里编写代码。
       这里我们先实现阻塞式的循环点灯,实现LED灯的闪烁效果,首先初始化配置 LED 引脚, 然后在一个死循环里面重复此流程LED 灯亮,延时1s,LED 灯灭,延时1s,然后 LED 灯又亮。 如此反复循环,就能实现 LED 灯的闪烁效果。
       使用 R_BSP_SoftwareDelay 函数可以进行延时,LED 灯维持亮和灭这两种状态的时间由此函数决定。 它的第一个参数表示延时的时间量,第二个参数表示时间单位。
       时间单位参数可选:
              BSP_DELAY_UNITS_SECONDS,表示秒;
              BSP_DELAY_UNITS_MILLISECONDS,表示毫秒;
              BSP_DELAY_UNITS_MICROSECONDS,表示微秒。
              为此我们构建了LED的阻塞式的闪烁函数:
#define Pin_LEDUser BSP_IO_PORT_10_PIN_01
#define LEDUser_ON R_IOPORT_PinWrite(&g_ioport_ctrl, Pin_LEDUser, BSP_IO_LEVEL_LOW)
#define LEDUser_OFF R_IOPORT_PinWrite(&g_ioport_ctrl, Pin_LEDUser, BSP_IO_LEVEL_HIGH)

      实际效果可参见效果展示视频中的"LED阻塞式闪烁"部分.后续会发布制作完成的视频
       我们本次的RA8核心板体验不仅限于点灯,不过也无法绕开点灯,以此为突破口进行各种功能的体验.

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:硬件工程师
简介:有着多年硬件开发经验的专业人员,专注于医疗电子领域,热衷于对新鲜事物的探索,喜欢DIY!

230

主题

1478

帖子

7

粉丝