完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本文基于开发板RVB2601,测试LED控制程序,简要介绍新建项目,引脚初始化,rtos任务管理,引脚控制,OLED信息显示,串口打印调试信息
一、概述1、RVB2601是基于平头哥生态芯片CH2601的开发板,板载JTAG调试器,WiFi&BLE芯片W800,音频ADCES7210,音频DACES8156,128x64 OLED屏幕,RGB三色指示灯,用户按键,及兼容Arduino的扩展接口。 2、有丰富的软硬件资源可供参考学习,https://occ.t-head.cn/vendor/det ... amp;module=4#sticky,此链接中包含有LED显示相关的例程,下载CH2601_SDK并解压缩,选择ch2601_marquee_demo,该示例程序通过控制一颗RGB LED灯珠实现三色跑马灯效果。该程序基于CH2601开发板,用于介绍如何在CH2601上开发外设应用程序以及如何使用LED灯。 3、通过例程的学习,熟悉YoC(Yun on Chip) 的开发理念,以极简开发为理念,以CPU架构、芯片平台、操作系统、云服务和开发套件为基础,助力开发者从芯片到云的全链路高效设计,是面向IoT领域的全栈技术平台。 4、在例程的基础上,通过GPIO和PWM控制,选择合适的占空比即可实现多色彩灯。 二、新建LED项目1、新建工作空间,菜单栏Project下面选择New Multi-Project Workspace 2、输入工作空间名称,和路径 3、菜单栏Project下面选择New IoT Project 4、选择芯片,Chip List:选择CH2601 5、选择开发板,RVB2601 6、选择例程,第一个,ch2601_marquee_demo,完成 7、确认提示信息 8、等待unchecked完成 9、 项目文件结构 三、编译、烧写项目1、菜单栏Project下面选择Build Active Project F7 或命令按钮 2、等待编译完成,第一次编译会比较慢,耐心等待 3、用两条u***线分别连接开发板的j_tag和uart到电脑,我的电脑->设备管理器中查看串口设备,CKLink是下载串口,CP210x是调试串口 4、菜单栏Flash下面选择Download 5、等待 6、复位,按下开发板右下角RST按钮,开发板重启,OLED显示“THEAD MARQUEE DEMO”,三色灯间隔1秒钟重复显示:绿色、蓝色、灭? 7、打开Project Settings,勾选Reset and Run,每次下载完成以后,会自动运行程序 四、调试项目1、三色灯闪烁的过程中,颜色显示不像预期的红、绿、蓝交替,而是青色、灰色、熄灯,怀疑是引脚跳线没有连接。 2、检查入口main()函数, int main(void){ board_yoc_init(); //初始化控制台串口引脚 printf("===%s, %dn", __FUNCTION__, __LINE__); printf("===%s, %dn", __FUNCTION__, __LINE__); aos_task_new("demo", demo_task, NULL, 10 * 1024); //创建系统调用任务 return 0;} 3、 根据此线索找到任务调用函数demo_task() static void demo_task(void *arg){ lv_init(); //显示组件lvgl初始化 oled_init(); //OLED屏初始化 lable_test(); //采用lvgl的lable控件,显示信息 led_pinmux_init(); //引脚初始化函数 while (1) { lv_task_handler(); udelay(1000 * 1000); lv_tick_inc(1); led_refresh(); }}4、找到led引脚初始化的位置,检查引脚配置 void led_pinmux_init() { csi_pin_set_mux(PA7, PIN_FUNC_GPIO); csi_pin_set_mux(PA25, PIN_FUNC_GPIO); csi_pin_set_mux(PA4, PIN_FUNC_GPIO); csi_gpio_pin_init(&r, PA7); csi_gpio_pin_dir(&r, GPIO_DIRECTION_OUTPUT); csi_gpio_pin_init(&g, PA25); csi_gpio_pin_dir(&g, GPIO_DIRECTION_OUTPUT); csi_gpio_pin_init(&b, PA4); csi_gpio_pin_dir(&b, GPIO_DIRECTION_OUTPUT); g_ctr = 0; } 5、检查跳线,发现J3的pin3,4没有连接 经过连接跳线后,led同时出现蓝红色了,有一半蓝色一半红色,颜色不正常,单独的蓝色也没有,而是混色成了青色。 电路图上三个led共阳极 6、找到led控制程序void led_refresh(),程序控制是按照共阴极写的 csi_gpio_pin_write(&r, GPIO_PIN_HIGH);//高电平显示红色 csi_gpio_pin_write(&g, GPIO_PIN_LOW);//低电平关闭绿色 csi_gpio_pin_write(&b, GPIO_PIN_LOW);//低电平关闭蓝色愿望是高电平显示红色,低电平关闭绿色和蓝色,但是,实际显示却是关闭了红色,而显示绿色和蓝色的混合色,需要修改一下程序 void led_refresh(){ g_ctr++; printf("led_pinmux_init gpion"); if (g_ctr % 3 == 0) { csi_gpio_pin_write(&r, GPIO_PIN_LOW); //低电平显示红色 csi_gpio_pin_write(&g, GPIO_PIN_HIGH); //高电平关闭绿色 csi_gpio_pin_write(&b, GPIO_PIN_HIGH); //高电平关闭蓝色 }}编译下载后运行,红、绿、蓝交替显示正常了。 由此得到的提示,可以通过同时控制两个以上三色灯为低电平,实现多彩LED控制,但是颜色数量有限,而且亮度不可控。 7、如果需要各种颜色,各种明暗程度可调,就要用到pwm,通过RGB混色实现彩灯控制 在app_config.h文件中,切换宏定义,配置LED引脚的功能为CONFIG_PWM_MODE #define CONFIG_PWM_MODE//#define CONFIG_GPIO_MODE8、初始化LED引脚的功能为PWM通道 void led_pinmux_init(){ //7 csi_error_t ret; csi_pin_set_mux(PA7, PA7_PWM_CH7); csi_pin_set_mux(PA25, PA25_PWM_CH2); csi_pin_set_mux(PA4, PA4_PWM_CH4); ret = csi_pwm_init(&r, 0);} 9、配置占空比bright_ctr,改变明暗程度 csi_pwm_out_config(&r, 7/2, 255, bright_ctr, PWM_POLARITY_LOW);10、启动PWM csi_pwm_out_start(&r, 7/2 );11、写信息到串口 printf("led_r gpio test!n");12、OLED显示信息 lv_label_set_text(p, "RVB2601nLEDnGPIO+PWM"); 五、遇到的问题1、预编译#ifdef显示不正常 CONFIG_GPIO_MODE并没有被定义,不能灰度显示程序段,没有可供收缩代码段的三角符号。 2、编辑器在暗色模式下,切换窗口,右键菜单,等等有几秒钟的延时,体验不好,希望下一个版本能有改善(编写此文档的时候,我用台式机,安装CDK V2.10.5,当我修改此文档的时候,用的笔记本,安装CDK V2.12.1,我惊喜的发现,暗色模式切换窗口完全没有延迟了,但是我回到台式机,升级CDK V2.10.5,却提示已经是最新版本,当我查看版本号,仍然还是V2.10.5,目前这个问题只能重新下载最新版的安装包,重新安装,得以解决)。 3、有时遇到下载不了,按一下J-RST复位按钮。 |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
【平头哥Sipeed LicheeRV 86开发板试用体验】Waft初体验
15706 浏览 1 评论
13761 浏览 4 评论
【平头哥Sipeed LicheeRV 86开发板试用体验】四、烧写waft系统&搭建waft测试环境
19682 浏览 2 评论
59126 浏览 19 评论
【限时福利】加入芯片开发社区,领100G电子工程师资料大礼包
88185 浏览 121 评论
邀请函 | 3月2日 来上海参加平头哥“玄铁RISC-V生态大会”
788浏览 0评论
读书分享会 | 玄铁RISC-V处理器入门与实战电子书免费下载!
685浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 06:44 , Processed in 0.555672 second(s), Total 64, Slave 49 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号