概况
本文档主要介绍智能彩灯五路产品原型的应用代码部分,关于环境搭建、sdk移植、下载调试。
步骤
第 1 步:下载验证
st nucleo,按键1长按为配网,指示灯旁黑色按键为开发板复位口,usb为程序下载口。
涂鸦三明治(pwm)照明功能板
涂鸦三明治 wi-fi mcu 通信板(e3s)
连接方式如下:(从上到下依次为:涂鸦三明治(pwm)照明功能板,st nucleo,涂鸦三明治 wi-fi mcu 通信板(e3s))
注意:为防止电脑 usb 供电不足导致下载完成后,开发板不断重启,推荐使用独立电源板供电,或者,下载时将 rgb 板取下,下载完成后再接上。
第 2 步:程序实现
开发者需要重点关注三个函数setup(),loop()与 dp_download_handle()
1.setup()函数用于执行一些初始化内容,只执行一次
void setup() {
pinmode(pc13, input); //配网初始化
myserial.begin(9600); //软件串口初始化
myserial.println(myserial init successful!);
serial.begin(115200); //pa3 rx pa2 tx
serial.println(serial init successful!
);
light_data_int(); //rgb冷暖灯初始化
iic_init(); //iic初始化用于驱动rgb灯
delay(10);
rgb_init(0, 0, 0);
wifi_protocol_init(); //协议串口初始化函数
timer_init(); //定时器初始化
hue_shade_start(&a);
}
2.loop()函数将会循环执行函数体中的内容
void loop() {
if (init_flag == 0) {
time_cnt++;
if (time_cnt % 6000 == 0) {
time_cnt = 0;
cnt ++;
}
wifi_stat_led(&cnt); //wi-fi状态处理
}
wifi_uart_service(); //wi-fi串口处理服务
myserialevent(); //串口接收处理
key_scan(); //重置配网按键检测
}
/*****************************************************************************
函数名称 : dp_download_handle
功能描述 : dp下发处理函数
输入参数 : dpid:dp序号
value:dp数据缓冲区地址
length:dp数据长度
返回参数 : 成功返回:success/失败返回:erro
使用说明 : 该函数用户不能修改
*****************************************************************************/
unsigned char dp_download_handle(unsigned char dpid, const unsigned char value[], unsigned short length)
{
/*********************************
当前函数处理可下发/可上报数据调用
具体函数内需要实现下发数据处理
完成用需要将处理结果反馈至app端,否则app会认为下发失败
***********************************/
unsigned char ret;
printf(dpid = %d
, dpid);
switch (dpid)
{
case dpid_switch_led:
//开关处理函数
ret = dp_download_switch_led_handle(value, length);
break;
case dpid_work_mode:
//模式处理函数
ret = dp_download_work_mode_handle(value, length);
break;
case dpid_bright_value:
//白光亮度处理函数
ret = dp_download_bright_value_handle(value, length);
break;
case dpid_temp_value:
//白光色温处理函数
ret = dp_download_temp_value_handle(value, length);
break;
case dpid_colour_data:
//彩光颜色处理函数
ret = dp_download_colour_data_handle(value, length);
break;
case dpid_control_data:
//调节处理函数
ret = dp_download_control_data_handle(value, length);
break;
default:
break;
}
return ret;
}
3.dp_download_handle()主要用于处理由云端下发的dp数据,开发者需要根据相应的dp下发实现相应的功能
/*****************************************************************************
函数名称 : dp_download_handle
功能描述 : dp下发处理函数
输入参数 : dpiddp序号
value:dp数据缓冲区地址
length:dp数据长度
返回参数 : 成功返回:success/失败返回:erro
使用说明 : 该函数用户不能修改
*****************************************************************************/
unsigned char dp_download_handle(unsigned char dpid, const unsigned char value[], unsigned short length)
{
/*********************************
当前函数处理可下发/可上报数据调用
具体函数内需要实现下发数据处理
完成用需要将处理结果反馈至app端,否则app会认为下发失败
***********************************/
unsigned char ret;
printf(dpid = %d
, dpid);
switch (dpid)
{
case dpid_switch_led:
//开关处理函数
ret = dp_download_switch_led_handle(value, length);
break;
case dpid_work_mode:
//模式处理函数
ret = dp_download_work_mode_handle(value, length);
break;
case dpid_bright_value:
//白光亮度处理函数
ret = dp_download_bright_value_handle(value, length);
break;
case dpid_temp_value:
//白光色温处理函数
ret = dp_download_temp_value_handle(value, length);
break;
case dpid_colour_data:
//彩光颜色处理函数
ret = dp_download_colour_data_handle(value, length);
break;
case dpid_control_data:
//调节处理函数
ret = dp_download_control_data_handle(value, length);
break;
default:
break;
}
return ret;
}
云端下发的颜色数据为 hsv 格式我们需要将其转化为 rgb 格式,并对 rgb 数据修正,即得到正确的 rgb 值供显示
rgb 调光部分几个重要api:
lw
千元内最好的挂脖蓝牙耳机是哪款?千元内挂脖蓝牙耳机榜单
iPhone8要回归初代?要知道万人迷的iOS“小白点”已经被嫌弃
PC电源分析
7/8航空插头电控柜通讯模块5针焊板式防水插座
绷带阻水性测试仪的技术特征以及技术参数
智能彩灯五路产品原型的代码实现(三明治开发板+Arduino,Wi-Fi)
必要商城:C2M模式正式启动,成为平台成功的秘诀
变压器差动保护不平衡电流的产生原因及解决办法
运算放大器LM741内部电路详解+工作原理+功能参数
测试开发工程师的发展方向
国产DSP芯片厂商苏州洪芯完成千万级Pre-A轮融资
【资料干货】入门IC设计,资深芯片设计工程师带你起飞(领IC设计资料)
处理器电源管理主要实现方式是什么?
iphone8刚上市就遭冷门,iPhone6S降至白菜价也无人问津
超声波焊接的优势有哪些
未来的AI计算领域,将是CPU、GPU、IPU并行
华为手机2019全年出货量2.3亿部左右 有可能超越苹果的全年销量
解决热管理挑战对自动驾驶汽车的发展至关重要
中信国际电讯集团共创新可能,华丽亮相2022世界人工智能大会
MS4525DO-DS3AI005DPF差压传感器在暖通空调的应用