由于众所周知的原因,最近STM32价格已经上天了。于是我便打算在新项目中使用ESP32。
我的项目中包含一个nb模组,使用它来连接阿里云并上报json格式数据。
由于我是第一次使用STM32以外的平台,开发环境的搭建废了不少时间。在项目中添加自己的.c和.h文件参考了Mark_md的教程。想要更详细了解,可以查看官方关于组件依赖的描述。
set(nbiot_srcs "src/nbiot.c")
idf_component_register(SRCS "${nbiot_srcs}"
INCLUDE_DIRS "include")
上面提到,我需要生成json格式的数据,那么如何在我所编写的nb模组驱动中包含cJSON的头文件呢?我们可以注意到项目组件中提供了cJSON的源码。
只要在自建库的CMakeLists中稍作修改,就可以在自己的库中使用cJSON了。
set(nbiot_srcs "src/nbiot.c")
idf_component_register(SRCS "${nbiot_srcs}"
INCLUDE_DIRS "include"
REQUIRES json)
#ifndef _NBIOT_H_
#define _NBIOT_H_
#include "cJSON.h"
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "esp_log.h"
#include "driver/uart.h"
#include "driver/gpio.h"
#include "driver/spi_master.h"
同理,遇到其它不能直接引用的组件,只需要加上REQUIRES+组件名就可以了。