1574|2

282

帖子

2

TA的资源

一粒金砂(高级)

楼主
 

【平头哥RVB2601创意应用开发】2. 试试控制板载RGB [复制链接]

  本帖最后由 hehung 于 2022-3-5 21:58 编辑

前言

本文尝试了RVB2601RGB彩灯。

因为RGB的操作官方已经做了,本文将在官方的例程上进行二次开发,以及对源码的解析。

加载工程


  1. 打开CDK,如果不在welcome界面,点击左上角的home按钮回到welcome界面;

   

  1. 在首页,点击新建工程按钮,搜索ch2601_marquee,搜索到ch2601_marquee_demo工程;

 

  1. 点击创建工程按钮,输入名字,我取名为RGB_Test,然后点击下载方案,等待下载完成。

  2.  

 

代码分析

例程加载好了之后在左边的工程文件夹中,主要操作逻辑在app下面,这下面的文件都是用户自己创建的,其他目录下的文件都是系统文件;

我们需要关注的文件是led.cmain.cinit文件夹以及lvgl_porting文件夹是对初始化以及OLED的操作,我们现在无需关心;

看代码先从main函数入手,main函数代码如下。

   

  1. board_yoc_init是初始化函数;aos_task_newOS任务创建函数,创建了一个demo_task任务来操作RGB输出。
  2. board_yoc_init是板载资源的初始化,包括了串口,OS等,这块我们暂时不用关心,主要任务是看看如何初始化GPIO 
  3. 找到任务函数demo_task,如下图,前三个函数lv_init();oled_init();lable_test();的调用都是关于OLED的,初始化OLED,并且显示一个label,我们重点看函数led_pinmux_init()

 

  1. 找到函数led_pinmux_init(),在代码中,led_pinmux_init()在两个地方都有,一个是main.c函数里面,是包含在如果宏定义CONFIG_GPIO_MODE里面的,表示使用普通GPIO控制RGB,另一个在led.c里面,包含在如果宏定义CONFIG_PWM_MODE里面的,表示使用PWM控制RGBCONFIG_GPIO_MODECONFIG_PWM_MODE的宏在app_config.h里面,默认使用的是宏定义CONFIG_PWM_MODE,也就是PWM方式。我们也主要按照PWM方式分析,我们可以看到,这里初始化了三个引脚,并且都初始化为PWM

三个引脚分别为PA7,PA25,PA4.

 

  1. 看原理图,我们可以看到如下图,RGB三个LED通过跳线帽连接到了PA7,PA25,PA4.

对应关系:

蓝色 -- PA4 -- PWM4

绿色 -- PA25 -- PWM2

红色 -- PA7 -- PWM7

 

  1. 关于PWM的操作详见YOC教程:https://yoc.docs.t-head.cn/yocbook/Chapter3-AliOS/CSI%E8%AE%BE%E5%A4%87%E9%A9%B1%E5%8A%A8%E6%8E%A5%E5%8F%A3/CSI2/PWM.html

该文档教程详细描述了如何使用Yoc平台的接口。 

  1. 回到demo_task函数,在while循环中led_refresh()就是控制函数,通过分析我们可以知道,g_ctr首先会加到1,所以先是绿灯亮后灭,然后是蓝灯亮后灭,最后是红灯亮后灭,之后交替亮灭,交替时间是1000*1000us,也就是1s。
  2. 关于GPIO的操作可以参考:https://yoc.docs.t-head.cn/yocbook/Chapter3-AliOS/CSI%E8%AE%BE%E5%A4%87%E9%A9%B1%E5%8A%A8%E6%8E%A5%E5%8F%A3/CSI2/GPIO.html

  3.  

结果验证

分析完代码,我们直接编译下载验证。最后可以看到,和我们分析结果一致,后边可以自己修改代码,控制RGB按照我们自己的逻辑运行。

下载了软件之后,发现先是白光一闪,然后绿色LED亮,接着绿LED灭,然后蓝色LED亮,接着蓝色LED灭,最后都不亮,交替时间为1s,循环往复。

为什么红色LED不亮呢?经过长时间问题查找,发现是硬件跳线帽没有连接,PA7的跳线帽需要连接上,我这里用的是一根杜邦线连接的,然后三个LED均可以正常工作了。

关于使用GPIO的操作逻辑,可以将app_config中的//#define CONFIG_GPIO_MODE打开,#define CONFIG_PWM_MODE注释掉即可。

 

最新回复

程序代码正确,哪个灯不亮就是硬件连接的问题了 整的不错     详情 回复 发表于 2022-3-7 07:29
点赞 关注
 
 

回复
举报

6828

帖子

0

TA的资源

五彩晶圆(高级)

沙发
 

程序代码正确,哪个灯不亮就是硬件连接的问题了

整的不错

 

点评

是的,给我发的板子跳线帽接错了,找了半天问题  详情 回复 发表于 2022-3-7 08:43
 
 
 

回复

282

帖子

2

TA的资源

一粒金砂(高级)

板凳
 
Jacktang 发表于 2022-3-7 07:29 程序代码正确,哪个灯不亮就是硬件连接的问题了 整的不错  

是的,给我发的板子跳线帽接错了,找了半天问题

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表