在开始点灯之前,我们需要从“https://www.rt-thread.org/page/studio.html”下载RT-Thread Studio开发工具,从“https://gitee.com/bluetrum/Downloader/blob/main/Downloader_v1.9.7.zip”下载烧录固件的工具,然后将RT-Thread Studio快速安装完毕后,安装针对AB32VG1开发板的资源包
安装RT-Thread Studio中集成SDK所必要的最新资源库
工程源码的编译当然少不了交叉编译器,工程采用RISC-V GCC编译器,勾选该项并安装
安装完这些组件后,然后将开发板与PC端连接,新建工程,选择“基于开发板”
根据自己的需要,使能串口外设接口
开发板上板载一个三色RGB彩灯,控制RGB灯的变化实际上就是控制这三个GPIO口的电平输出。板上的电路连接原理图如下:
由上图可知,引脚PA1对应蓝灯,引脚PE1对应红灯,引脚PE4对应绿灯,RGB为共阳极,当引脚拉低时,对应的led点亮,在“applications”文件夹下新建立一个rgb.c和rgb.h文件,源代码编辑如下:
#ifndef APPLICATIONS_RGB_C_
#define APPLICATIONS_RGB_C_
#endif /* APPLICATIONS_RGB_C_ */
#include "rgb.h"
#include
#include "board.h"
struct Led_s
{
uint8_t LED_R;
uint8_t LED_B;
uint8_t LED_G;
};
struct Led_s Led;
void RGB_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 RGB_Red(rt_bool_t on)
{
rt_pin_write(Led.LED_G, PIN_HIGH);
rt_pin_write(Led.LED_B, PIN_HIGH);
if (on) {
rt_pin_write(Led.LED_R, PIN_LOW);
}else {
rt_pin_write(Led.LED_R, PIN_HIGH);
}
}
//蓝灯驱动
void RGB_Blue(rt_bool_t on){
rt_pin_write(Led.LED_G, PIN_HIGH);
rt_pin_write(Led.LED_R, PIN_HIGH);
if (on) {
rt_pin_write(Led.LED_B, PIN_LOW);
}else {
rt_pin_write(Led.LED_B, PIN_HIGH);
}
}
//绿灯驱动
void RGB_Green(rt_bool_t on)
{
rt_pin_write(Led.LED_R, PIN_HIGH);
rt_pin_write(Led.LED_B, PIN_HIGH);
if (on) {
rt_pin_write(Led.LED_G, PIN_LOW);
}else {
rt_pin_write(Led.LED_G, PIN_HIGH);
}
}
主函数的源文件中包含“rgb.h”头文件,然后编写rgb彩灯运行线程,三种颜色依次切换,中间延时1秒钟。
static void rgb_thread_entry(void* p)
{
RGB_Init();
while(1)
{
rt_thread_mdelay(1000);
RGB_Blue(1);
rt_thread_mdelay(1000);
RGB_Green(1);
rt_thread_mdelay(1000);
RGB_Red(1);
}
}
接着创建线程启动函数,用于启动上一步编写的线程主体
static int Thread_RGB(void)
{
rt_thread_t thread = RT_NULL;
thread = rt_thread_create("rgb", rgb_thread_entry, RT_NULL, 512, 10, 10);
if(thread == RT_NULL)
{
rt_kprintf("Thread_GRB Init ERROR");
return RT_ERROR;
}
rt_thread_startup(thread);
}
最后记得将线程初始化添加入系统初始化中:INIT_APP_EXPORT(Thread_RGB);
然后编译,打开“Downloader.exe”下载软件,选择刚才编译生成的.dcf文件,选择对应的串口号(如果电脑未识别到串口,需要安装对应的USB转串口驱动),点击“开始”,按一下板子上复位按键,即可完成程序的烧录。
开发板烧录完成后,RGB灯点亮的效果如下图所示,此次分享告一段落,使用RT-Thread Studio能够更快的构建工程框架,而且编辑代码时会自动弹出备选的参考函数,实现的方式引入线程的概念,如果能够使用RT-Thread Studio内部集成的下载接口下载程序就更好了,这里必须采用官方提供的“Downloader.exe”下载工具。
-
开发板
+关注
关注
25文章
4914浏览量
97101 -
RT-Thread
+关注
关注
31文章
1266浏览量
39864 -
RISC-V
+关注
关注
44文章
2216浏览量
45969 -
中科蓝讯
+关注
关注
9文章
53浏览量
9843
发布评论请先 登录
相关推荐
评论