微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > 射频无线通信设计 > 小E代码简单修改

小E代码简单修改

时间:10-02 整理:3721RD 点击:
闲着没事,我也发个帖子,先上张小E照片!


个人爱好鼓捣点电子产品,年前看到小E开发板,感觉挺不错,众筹了一个。看到小E的多彩灯光挺好的,可以自己做一个用微信控制的床头灯玩玩。官方的SDK很全面,但由于个人能力太低,设计到的方方面面的知识又挺多,要搞明白也不是一天两天的事。研究代码的同时,就索性把小E改到RGB模式,虽然LED亮度小点,但夜里也能简单给点光线!


看着还挺刺眼的是吧?
但有个问题却让我很不舒服,每次小E开机,RGB等都是自动点亮的,而且小E如果断网还会自动重启(我的路由器设置了夜里自动关闭,早起开机),这样每天早上都得关下灯!
研究了一下小E开机过程,发现一加电RGB就开始亮了(即使不切换到RGB模式,LED也会闪一下),结合LOG也能看到,在系统还没启动前,灯就已经亮起来了,估计在这里直接灭灯,以自己的水平肯定解决不了,只能想个别的办法。进代码研究一下。
代码介绍从官方文件和论坛里学习了好多知识,也大概了解了一点,首先得去user_init()


进入这个模式选择函数。


  1.                 case WORK_MODE_RGB:
  2.                         RGB_light_init();                // RGB init
  3.                         DHT11_init();
  4.                         i2c_master_gpio_init(); // I2C init
  5.                         OLED_init();                         // OLED init
  6.                         OLED_clear();
  7.                         break;

复制代码

找到RGB模式的代码,我估计代码加在这里就应该能实现开机关灯的目的。
现在找找怎么关灯。其实点进RGB_light_init();就能找到RGB有关的函数位置了“driver/RGB_light.h”进去看看找找有用的。
都研究明白我还没那实力,但找点相关的还不难,我估计就用它就行。


  1. void ICACHE_FLASH_ATTR
  2. RGB_light_set_color(et_uint8 r, et_uint8 g, et_uint8 b)
  3. {
  4.         et_uint32 period = RGB_light_get_period();
  5.         et_uint32 max_duty = PWM_DUTY_MAX(period);

  6. #ifdef USER_PRINT_DEBUG
  7.         printf("set color: R(%02x) G(%02x) B(%02x)\r\n", r, g, b);
  8. #endif

复制代码

下面还有很多,看不懂,管他呢?r,g,b,都置零不就完事了!回去改改代码!

  1.                 case WORK_MODE_RGB:
  2.                         RGB_light_init();                // RGB init
  3.                         DHT11_init();
  4.                         i2c_master_gpio_init(); // I2C init
  5.                         OLED_init();                         // OLED init
  6.                         OLED_clear();
  7. <font color="red">                        RGB_light_set_color(0,0,0);</font>
  8.                         break;

复制代码

保存,进虚拟机,编译,回来刷写固件。好像真的起作用了。
——个人纯业余选手,闲着无聊,发个帖子,有错误请大家指点。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top