工程创建,初步编译
1、把esp-idf 中的例子:esp-idf/examples/wifi/getting_started/station复制一份出来
2、在station文件夹下创建一个文件夹:components (必须是这个名字),在这个文件夹下,添加需要用到的 .c /.h,并且创建相应的 CMakeLists.txt 文件。
CMakeLists.txt 文件内容:添加相应的 .c 和 .h 文件到编译器
file(GLOB_RECURSE srcs *.c)
idf_component_register(SRCS ${srcs}
INCLUDE_DIRS "."
)
3、在station 文件夹下的 CMakeLists.txt 中添加:set(EXTRA_COMPONENT_DIRS ./components/drivers)
4、测试:在station 文件夹下的main函数中调用components中定义的相关功能
5、编译:idf.py build
6、烧录:idf.py -p /dev/ttyUSB0 flash
7、日志:idf.py -p /dev/ttyUSB0 monitor
设计框架
1、串口初始化,用于接收从串口助手发来的指令、数据
2、WiFi station 初始化,接收到用户发来的ssid 和 pwd后连接网络,并且掉电后重连
3、适配quecthingSDK至工程
4、解析串口收到的数据
遇到的问题
1、
看门狗的问题,在qhal_Dev.c里
/**************************************************************************
** 功能 @brief : 看门狗喂狗,有看门狗时需要实现喂狗
** 输入 @param :
** 输出 @retval:
***************************************************************************/
void FUNCTION_ATTR_ROM Qhal_devFeeddog(void)
{
// esp_task_wdt_reset();
}
暂时还未解决这个问题,待解决。
2、登录DMP时,出现以下错误
没联网 :(
3、串口接收数据,最大到120就进入中断了,需要在uart.c中改
参考:问题三
uart_intr_config_t uart_intr = {
.intr_enable_mask = UART_INTR_CONFIG_FLAG,
.rxfifo_full_thresh = 2048,//UART_FULL_THRESH_DEFAULT, 在这里改!!!!
.rx_timeout_thresh = UART_TOUT_THRESH_DEFAULT,
.txfifo_empty_intr_thresh = UART_EMPTY_THRESH_DEFAULT,
};
4、vTaskDelay(1000);//延时10s