RISC-V架构开发板AB32VG1测评之GPIO点灯

描述

一、介绍

      AB32VG1 开发板是以中科蓝讯 (Bluetrum) 公司推出的基于RISC-V 架构的高配置芯片 AB32VG1 为核心所组成的。
·    CPU: AB32VG1 (LQFP48 封装,主频 120M ,片上集成

RAM 192K, flash 8Mbit,ADC,PWM,USB,UART,IIC 等资源)


·  搭载蓝牙模块
·  搭载FM模块
·  一路 TF Card 接口
·  一路 USB 接口
·  一路 IIC 接口
·  一路音频接口 (美标 CTIA)
·  六路 ADC 输入引脚端子引出
·  六路 PWM 输出引脚端子引出
·  一个全彩 LED 灯模块,一个电源指示灯,三个烧录指示灯
·  一个 IRDA (红外接收端口)
·  一个 Reset 按键,三个功能按键 (通用版为两个功能按键

)
·  板子规格尺寸:6cm * 9cm
·  I/O口通过 2.54MM 标准间距引出,同时兼容 Arduino Uno

扩展接口,方便二次开发

中科蓝讯

二、实验准备


第一步:
       安装 rt-thread studio 默认安装即可

第二步:
       配置安装 rt-thread studio

中科蓝讯

 

三、创建第一个项目

 

中科蓝讯

· 引脚PA1对应RGB灯的蓝灯
·  引脚PE1对应RGB灯的红灯
·  引脚PE4对应RGB灯的绿灯
RGB为共阴极。

*.h文件
#ifndef __LED_H__
#define __LED_H__

#include "board.h"


#define ON 1
#define OFF 0
struct RGBLeds {
    uint8_t LED_R;
    uint8_t LED_B;
    uint8_t LED_G;
};

void RGBLeds_Init(void);
void RGBLeds_Red(rt_bool_t status);
void RGBLeds_Blue(rt_bool_t status);
void RGBLeds_Green(rt_bool_t status);
void RunningWaterLamp(void);
#endif

 

*.c文件
#include "led.h"


struct RGBLeds Led;

void RGBLeds_Init(void){
    // 获得led成员对应引脚地址
    Led.LED_R = rt_pin_get("PE.1");
    Led.LED_G = rt_pin_get("PE.4");
    Led.LED_B = rt_pin_get("PA.1");
    // 设置引脚为输出方式
    rt_pin_mode(Led.LED_R, PIN_MODE_OUTPUT);
    rt_pin_mode(Led.LED_G, PIN_MODE_OUTPUT);
    rt_pin_mode(Led.LED_B, PIN_MODE_OUTPUT);
}


void RGBLeds_Red(rt_bool_t status){
    if (status) {
        rt_pin_write(Led.LED_R, PIN_LOW);
    }else {
        rt_pin_write(Led.LED_R, PIN_HIGH);
    }
    rt_pin_write(Led.LED_G, PIN_HIGH);
    rt_pin_write(Led.LED_B, PIN_HIGH);
}

void RGBLeds_Blue(rt_bool_t status){
    if (status) {
        rt_pin_write(Led.LED_B, PIN_LOW);
    }else {
        rt_pin_write(Led.LED_B, PIN_HIGH);
    }
    rt_pin_write(Led.LED_G, PIN_HIGH);
    rt_pin_write(Led.LED_R, PIN_HIGH);
}

void RGBLeds_Green(rt_bool_t status){
    if (status) {
        rt_pin_write(Led.LED_G, PIN_LOW);
    }else {
        rt_pin_write(Led.LED_G, PIN_HIGH);
    }
    rt_pin_write(Led.LED_R, PIN_HIGH);
    rt_pin_write(Led.LED_B, PIN_HIGH);
}

void RunningWaterLamp(void){
    RGBLeds_Red(ON);
    mdelay(500);
    RGBLeds_Red(OFF);
    RGBLeds_Blue(ON);
    mdelay(500);
    RGBLeds_Blue(OFF);
    RGBLeds_Green(ON);
    mdelay(500);
    RGBLeds_Green(OFF);
    RGBLeds_Red(ON);
    RGBLeds_Blue(ON);
    mdelay(500);
    RGBLeds_Red(OFF);
    RGBLeds_Blue(OFF);
    RGBLeds_Red(ON);
    RGBLeds_Blue(ON);
    RGBLeds_Green(ON);
    mdelay(500);
    RGBLeds_Red(OFF);
    RGBLeds_Blue(OFF);
    RGBLeds_Green(OFF);
    mdelay(500);
}

 

主函数:
#include "led/led.h"

int main(void)
{
    RGBLeds_Init();
    while (1)
    {
        RunningWaterLamp();
    }
}

四、下载RT-Thread固件

 

J5 为连接待烧录芯片 
J1 两引脚为烧录端供电

中科蓝讯中科蓝讯

五、实验现象

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

全部0条评论

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

×
20
完善资料,
赚取积分