三、SDK移植 下载好SDK包,打开后里面包含的文件如下图:
SDK的移植,官方有详细视频教程:涂鸦官方SDK包移植教程 官方的文档教程:涂鸦官方SDK包移植文档说明 我这里就把自己移植的过程作记录一遍, 我个人整体来说,没有详细的一点一点去看文档和视频,只是大概浏览一下,然后几个大步骤注意,都是修改编译,然后出了error 以后找到问题所在,去修改的:
3.1 添加对应的文件和头文件在需要使用到wifi功能的文件中包含一下wifi.h文件,#include "wifi.h",主函数中肯定需要,其他地方需不需要没必要特意去看,用到的时候没包含报错了,我们再包含也不迟
3.2 添加 PRODUCT_KEY 定义PRODUCT_KEY 就是我们在IoT平台创建的产品 ID,如下图:
- /******************************************************************************
- 1:修改产品信息
- ******************************************************************************/
- #define PRODUCT_KEY "v2psrivahslotbha" //开发平台创建产品后生成的16位字符产品唯一标识
- #define MCU_VER "1.0.0" //用户的软件版本,用于MCU固件升级,MCU升级版本需修改
- /* 模块工作方式选择,只能三选一,推荐使用防误触模式 */
- #define CONFIG_MODE CONFIG_MODE_DEFAULT //默认工作模式
复制代码
3.3 调用 wifi_protocol_init 函数在 MCU 串口及其他外设初始化后调用 mcu_api.c 文件中的 wifi_protocol_init() 函数。我样品使用的是串口3和涂鸦wifi连接的,然后波特率为9600:
3.4 串口收发处理串口发送: 将 MCU 串口单字节发送函数填入 protocol.c 文件中 uart_transmit_output 函数内,并删除 #error。 就是我们使用的MCU,哪个串口连接的涂鸦wifi,自己把此串口发送一个字节的函数放在uart_transmit_output 函数内:
串口接收: 在串口接收中断服务函数里面调用 mcu_api.c 文件内的 uart_receive_input 函数,并将接收到的字符作为参数传入。
3.5 调用 wifi_uart_service函数单片机进入 while(1) 循环后调用 mcu_api.c 文件内的 wifi_uart_service() 函数。
3.6 设备上电初始状态上报修改 protocol.c 中的函数 all_data_update(void) ,此函数是产品上电状态,这个可以根据自己的意愿上报初始状态:
那么这些DP点在哪里看到定义呢,是在 protocol.h 文件中有定义,这也是和我们当时自己设置的产品功能一一对应的:
3.7 完善下发操作完成每个下发DP点自己需要的操作,在 protocol.c 文件中,每个可下发的 DP 点,都有一个单独下发数据处理函数。格式为 dp_download_xxx_handle(),比如我们进行开关控制继电器动作:
3.8 其他细节处理人感的状态上报我是放在主函数中判断:
在官方文档中,进行到这一步,还需要配网指示灯的添加,我这里没有用到,因为我选择的是 wifi模块自动处理按键和LED指示,这是在当时选择wifi模块的时候的一个可选择的功能,我选择的是wifi模块自动控制,使用的是官方推荐的参考电路,参考电路如下:
但是记住,模块自动控制的话,需要在 protocol.h 中定义WIFI_CONTROL_SELF_MODE,默认是注销的:
完成以上步骤,基本移植完成,但是还是有些地方需要修改,但是这些修改都是可以根据编译后的错误,找到错误位置进行修改,每个错误的地方基本都有注释说明,很简单的。最后直到编译完全通过,wifi模块的驱动就已经完成了。
|