【平头哥RVB2601创意应用开发】_2_环境搭建_驱动GPIO
[复制链接]
本帖最后由 YangTwo 于 2022-3-4 19:49 编辑
CH2601芯片有比较多的IO口,驱动GPIO是一个基本的控制功能。RVB2601板子上有个三色LED,分别连接到J3连接器的4,6,8脚。
从开发板用户手册可以看到:R,G,B三色小灯分别连接到PA7, PA25, PA4引脚。
从电路图上可以LED_BLUE,LED_GREEN, LED_RED为低电平时候,小灯点亮;为高电平时,小灯熄灭。
代码如下:
/*
* Copyright (C) 2019-2020 Alibaba Group Holding Limited
*/
#include <stdlib.h>
#include <string.h>
#include <aos/aos.h>
#include "aos/cli.h"
#include "main.h"
#include "app_init.h"
#include "oled.h"
#include "soc.h"
#include "drv/gpio_pin.h"
#include <drv/pin.h>
#define TAG "app"
csi_gpio_pin_t MY_PIN_LED_RED;
csi_gpio_pin_t MY_PIN_LED_GREEN;
csi_gpio_pin_t MY_PIN_LED_BLUE;
int main(void)
{
board_yoc_init();
LOGD(TAG, "%s\n", aos_get_app_version());
oled_init();
//PA4 - BLUE PA7-RED PA25 GREEN
csi_pin_set_mux(PA4, PIN_FUNC_GPIO);
csi_pin_set_mux(PA7, PIN_FUNC_GPIO);
csi_pin_set_mux(PA25, PIN_FUNC_GPIO);
csi_gpio_pin_init(&MY_PIN_LED_BLUE, PA4);
csi_gpio_pin_init(&MY_PIN_LED_RED, PA7);
csi_gpio_pin_init(&MY_PIN_LED_GREEN, PA25);
csi_gpio_pin_dir(&MY_PIN_LED_GREEN, GPIO_DIRECTION_OUTPUT);
csi_gpio_pin_dir(&MY_PIN_LED_RED, GPIO_DIRECTION_OUTPUT);
csi_gpio_pin_dir(&MY_PIN_LED_BLUE, GPIO_DIRECTION_OUTPUT);
csi_gpio_pin_write(&MY_PIN_LED_BLUE, GPIO_PIN_HIGH);
csi_gpio_pin_write(&MY_PIN_LED_RED, GPIO_PIN_HIGH);
csi_gpio_pin_write(&MY_PIN_LED_GREEN, GPIO_PIN_HIGH);
while (1) {
LOGD(TAG, "Hello world! YoC");
aos_msleep(1000);
//csi_gpio_pin_toggle(&MY_PIN_LED_BLUE);
//csi_gpio_pin_toggle(&MY_PIN_LED_RED);
csi_gpio_pin_toggle(&MY_PIN_LED_GREEN);
}
return 0;
}
GPIO驱动步骤:选择引脚复用功能,初始化引脚,设置引脚模式(输入/输出),写入/读取数据。
最终效果:
在CDK工具中,最好可以设置下载完成后“Reset and Run”:
这样下载之后:
CDK工具有代码提示还是不错的。开发板功能强大,这只是冰山一角,感谢EEWORLD提供的机会!
|