编辑语:
芯片开放社区(OCC)面向广大开发者推出应用实战系列内容,通过分享开发者实战开发案例,总结应用开发经验,梳理开发中的常见问题及解决方案,为后续参与的开发者提供更多参考与借鉴。
本文是关于开发者 kit7828 基于BL606P-DVK开发板实战开发的系列文章中的第二篇,主要介绍了BL606P实现RGB点灯,后面还会持续更新该开发者的测评内容,敬请期待!
BL606P开发板中有一颗RGB灯,以及4颗LED灯,其中LED是用BL702芯片控制的,因此,BL606P只能控制RGB三色灯,分别为GPIO17、18、19,对应R、G、B,输出高电平点亮。
01 硬件及连接
BL606P开发板中有一颗RGB灯,以及4颗LED灯,硬件连接原理图分别如下
1.1 RGB灯的连接
IO引脚控制NMOS管点亮RGB灯,GPIO17、18、19分别对应R、G、B,输出高电平点亮,同时需要设置跳线帽JP6-8
跳线帽要插在RGB灯的远端。
1.2 LED的连接
分别采用BL702的GPIO23、17、14、9控制D9-D12,输出低电平点亮。
就BL606P来说,只能控制RGB灯了。
02 软件实现
控制BL606P的GPIO,参考官网提供的例程
新建了led.c文件
具体代码如下:
/* 头文件包含 */ #include#include #include "app_main.h" void gpio_output_set(int port, int val) { /* GPIO 推挽输出模式设置 */ gpio_dev_t gpio = { 0, OUTPUT_PUSH_PULL, NULL }; /* 设置 pin 脚,与管脚复用设置一致 */ gpio.port = port; /* GPIO 初始化, 配置为输出模式 */ int ret = hal_gpio_init(&gpio); if (ret == 0) { if (val) { /* IO 输出高电平 */ ret = hal_gpio_output_high(&gpio); } else { /* IO 输出低电平 */ ret = hal_gpio_output_low(&gpio); } } /* GPIO 去初始化 */ hal_gpio_finalize(&gpio); }
在board_yoc_init函数中,设定GPIO引脚功能
main函数中,采用预定义
#define R_On()gpio_output_set(GPIO_PIN_17,1) #define R_Off()gpio_output_set(GPIO_PIN_17,0) #define G_On()gpio_output_set(GPIO_PIN_18,1) #define G_Off()gpio_output_set(GPIO_PIN_18,0) #define B_On()gpio_output_set(GPIO_PIN_19,1) #define B_Off()gpio_output_set(GPIO_PIN_19,0)
然后,实现RGB的三色转换
while(1){ R_On(); aos_msleep(500); R_Off(); G_On(); aos_msleep(500); G_Off(); B_On(); aos_msleep(500); B_Off(); }
03 总结
板子上RGB灯,应该出现了硬件问题,在拔掉跳线帽的情况下依然是点亮的,颜色应该是灰度级别的半亮度
由此初步判断RGB灯坏了,测量N-MOS的D极电压,都有0.8V,而RGB的阴极管教端,约有1.3v左右的电压
跳线帽合上后,可以看到R、G、B灯色的变化,但是不明显,因此也不传视频了。
由于手头没有热风枪,以及必要的器件,无法替换RGB灯。
整体来说,BL606P的开发板,硬件上感觉存在较大的不稳定,或许也是测评的因素之一吧。
审核编辑:汤梓红
全部0条评论
快来发表一下你的评论吧 !