基于博流BL606P音视频开发板的GPIO点灯教程

描述

编辑语:

芯片开放社区(OCC)面向广大开发者推出应用实战系列内容,通过分享开发者实战开发案例,总结应用开发经验,梳理开发中的常见问题及解决方案,为后续参与的开发者提供更多参考与借鉴。

本文是关于开发者 swzswz 基于BL606P-DVK开发板实战开发的系列文章中的一篇,主要介绍了GPIO点灯,后面还会持续更新社区开发者的测评内容,敬请期待!

01 灯GPIO控制原理

BL606带有3个灯的控制,下图是接线原理图。

原理图

02 过程

平头哥官网给出了GPIO口的控制例程,如下图

原理图

新建Led.c文件,以便控制led灯的亮灭。

代码如下:

 

/* 头文件包含 */
#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);

}

 

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灯交替点亮。

  审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分