00:00:00
输出 "Hello, Tuya!"
创建新的应用
- 选中
apps文件夹后使用鼠标右键展开菜单,选择Create Project创建一个新文件夹,命名为hellotuya。
笔记
提示说可以大写字母,但是实际上工程名称只能是小写字母、下划线和数字,不能包含空格或特殊字符。
编写 "Hello, tuya!"
步骤1
给 hellotuya 工程添加一个 local.mk 文件,并添加以下内容:
Makefile
# 当前文件所在目录
LOCAL_PATH := $(call my-dir)
#---------------------------------------
# 清除 LOCAL_xxx 变量
include $(CLEAR_VARS)
# 当前模块名
LOCAL_MODULE := $(notdir $(LOCAL_PATH))
# 模块对外头文件(只能是目录)
# 加载至CFLAGS中提供给其他组件使用;打包进SDK产物中;
LOCAL_TUYA_SDK_INC := $(LOCAL_PATH)/include
ifneq ($(APP_PACK_FLAG), 1)
endif
# 模块对外CFLAGS:其他组件编译时可感知到
LOCAL_TUYA_SDK_CFLAGS := -DUSER_SW_VER=\"$(APP_VER)\" -DAPP_BIN_NAME=\"$(APP_NAME)\"
# 模块源代码
LOCAL_SRC_FILES := $(shell find $(LOCAL_PATH)/src -name "*.c" -o -name "*.cpp" -o -name "*.cc")
# 模块内部CFLAGS:仅供本组件使用
LOCAL_CFLAGS :=
# 全局变量赋值
TUYA_SDK_INC += $(LOCAL_TUYA_SDK_INC) # 此行勿修改
TUYA_SDK_CFLAGS += $(LOCAL_TUYA_SDK_CFLAGS) # 此行勿修改
# 生成静态库
include $(BUILD_STATIC_LIBRARY)
# 生成动态库
include $(BUILD_SHARED_LIBRARY)
# 导出编译详情
include $(OUT_COMPILE_INFO)
#---------------------------------------警告
如果没有这个文件,编译时会报错。如: 
步骤2
- 在
src文件夹下的tuya_device.c文件找到user_main函数(在文件中的第9行),添加以下函数:
C
STATIC VOID user_main(VOID_T)
{
tuya_base_utilities_init(); // 初始化基础组件
tal_log_set_manage_attr(TAL_LOG_LEVEL_DEBUG); // 设置日志级别
while(1) {
TAL_PR_DEBUG("Hello TuyaOS.");
tal_system_sleep(3000); // 3s
}
return;
}编译并烧录应用
- 编译工程:选中
hellotuya工程文件夹后,按鼠标右键,选择Build Project: - 烧录应用:在
hellotuya工程文件夹中的output文件夹,选择hellotuya_QIO_v1.0.0.bin文件,按鼠标右键,选择Flash App,选择对应的串口,如/dev/ttyACM0. - 示例:

验证
- VSCode 的
串行监视器或Serial Monitor工具,选择对应的串口,如/dev/ttyACM1,波特率 115200。 - 按下开发板的
RST按钮,开发板会输出Hello TuyaOS.日志。如:
