常见问题
更新时间:2020-11-24T09:01:25Z
mcu-sdk移植问题
编译问题
-
问:如果使用IAR或keil等编译器编译出现如下错误提示:
编译错误:declaration may not appear after executable statement in block
答:编译器选项选择"C99 Mode"。
sdk-串口调试log
-
问:SDK上的串口调试信息未输出?
答:查看MCU SDK《设置调试信息输出》介绍,是否有打开UART_DEBUG_ENABLE宏定义输出,是否有重新定义printf。
调试相关问题
-
问:未收到模组的uart信息?
答:(1)检测硬件接线是否正确。
(2)串口波特率是否设置为115200。
(3)mcu是否能收到WiFi模组的串口信息,模组上电后会下发信息,比如读取mcu版本号、心跳包等。
-
问:向WiFi模组发送指令,无任何响应?
答:(1)确保WIFI模组有上电,且供电流足够,WIFI模组启动瞬间需800mA左右的电流。
(2)若是调用SDK的请求接口,确保有正常使用,详细参考MCU SDK接口的使用。
(3)确保有重新定义sdk uart发送接口。
-
问:如何给wifi模组发送请求指令?
答:SDK中已经封装了所需的请求接口,只需直接调用,参考lds_wifi_uart_handle.h函数定义。
-
问:设备状态变化时,如何上报属性状态?
答:调用notify接口可以直接上报状态,调用函数“LdsUartCmdAttrNotify”
例子:如下以onoff控制为例子,控制并上报开关状态为1:
`void example_ctrl_onoff(void)` `{` ` xt_attr_t new_attr;` ` new_attr.id = ATTR_ONOFF;` ` new_attr.type = DATA_TYPE_INT;` ` new_attr.len = 4,` ` new_attr.value.valueint = 1;` ` // update device attribute status` ` LdsDevAttrUpdate(&new_attr, 1, 1);` ` // notify device attribute to arnoo cloud` ` LdsUartCmdAttrNotify(&new_attr, 1, 1);` `}`
属性相关问题
-
问:如何理解EP概念?
答:(1)EP:EndPoint,代表多个节点意思。
(2)比如是一盏风扇灯,则风扇和灯都有开关属性onoff,通过定义风扇为ep=1,灯定义为ep=2,当下发onoff属性控制时,可以通过ep值判断是开光风扇还是开关灯,或者当ep=0xff时,代表总开关。
-
问:如何知道设备都有什么控制属性?
答:参考SDK代码:lds_arnoo_config.c/lds_arnoo_config.h
设备属性定义参考:外接MCU串口二进制协议
定义了属性类型,属性个数,ep个数
例子:以下定义:有两个属性,ep为1、2、3的节点都有ONOFF属性,ep为1、2的节点有DIMMING。
const xt_dev_attr_t c_dev_attr_list[DEV_ATTR_COUNT] = { {ATTR_ONOFF, (RW_READ_MASK | RW_WRITE_MASK | RW_REPORT_MASK), DATA_TYPE_INT, {1,2,3}}, {ATTR_DIMMING, (RW_READ_MASK | RW_WRITE_MASK | RW_REPORT_MASK), DATA_TYPE_INT, {1,2}}, };