wordpress网站微信支付,网站都去哪里找,wordpress 目录 模板,wordpress无法将图片上传我是嵌入式学习菌#xff0c;一名热爱学习的嵌入式工程师关注我#xff0c;一起变得更加优秀#xff01;嵌入式学习菌CSDN、B 站视频号同名同步分享嵌入式学习点滴#xff5e; 无捷径唯有坚持#xff0c;愿与你并肩稳步前行#xff01;15篇原创内容公众号1.事件循环函数一名热爱学习的嵌入式工程师关注我一起变得更加优秀嵌入式学习菌CSDN、B 站视频号同名同步分享嵌入式学习点滴 无捷径唯有坚持愿与你并肩稳步前行15篇原创内容公众号1.事件循环函数这个函数是ESP-IDF框架中的esp_event_loop_create_default核心作用是创建一个默认的系统事件循环用于管理ESP32的系统事件比如WiFi、蓝牙、外设等模块的事件。举个实际场景WiFi连接状态监听比如你要开发ESP32的WiFiStation功能需要监听“WiFi连接成功”“WiFi断开”等事件就必须依赖这个默认事件循环步骤1先调用esp_event_loop_create_default创建循环你的代码里需要先执行这个函数否则事件无法分发//1.创建默认事件循环就是你截图里的这个函数esp_err_tretesp_event_loop_create_default();if(ret!ESP_OK){ESP_LOGE(MAIN,创建事件循环失败%s,esp_err_to_name(ret));return;}步骤2注册WiFi事件的回调函数//2.定义一个“WiFi连接成功”的回调函数staticvoidon_wifi_connected(void*arg,esp_event_base_tevent_base,int32_tevent_id,void*event_data){ESP_LOGI(WIFI,成功连接到路由器);//这里可以写连接成功后的逻辑比如启动网络请求}//3.把回调函数注册到默认事件循环中esp_event_handler_register(WIFI_EVENT,WIFI_EVENT_STA_CONNECTED,on_wifi_connected,NULL);步骤3初始化并启动WiFi//4.初始化WiFi为Station模式wifi_init_config_tcfgWIFI_INIT_CONFIG_DEFAULT();esp_wifi_init(cfg);//配置WiFi参数SSID、密码并启动esp_wifi_set_mode(WIFI_MODE_STA);wifi_config_twifi_cfg{.sta{.ssid你的WiFi名称,.password你的WiFi密码}};esp_wifi_set_config(WIFI_IF_STA,wifi_cfg);esp_wifi_start();这个函数在例子中的作用当WiFi成功连接路由器时ESP32的WiFi模块会向“默认事件循环”发送一个WIFI_EVENT_STA_CONNECTED事件而你注册的on_wifi_connected回调函数正是通过这个默认事件循环接收到事件后被触发执行的。2.挂载SPIFFS文件系统在ESP32中基于ESP-IDF框架初始化、挂载SPIFFS文件系统SPIFlashFileSystem并完成文件系统完整性检查、容量信息获取确保SPIFFS可用SPIFFS是ESP32专为SPIFlash设计的轻量级文件系统适合存储小文件、配置、日志等。ESP-IDF编译后程序自身的内存/Flash占用统计它和SPIFFS文件系统的关系是SPIFFS占用的是Flash的独立分区不在这个表格的统计范围内。SPIFFS文件系统存储在ESP32的SPIFlash闪存中而Flash是非易失性存储介质所以只要正常完成文件写入比如调用fclose确保数据刷入FlashSPIFFS里的内容掉电后不会丢失。下面分步骤拆解代码的具体作用结合每一行逻辑说明1.配置SPIFFS挂载参数esp_vfs_spiffs_conf_tconf{.base_path/spiffs,//SPIFFS挂载到VFS的路径后续访问文件用/spiffs/xxx.partition_labelNULL,//使用分区表中第一个标记为SPIFFS的分区留空默认匹配.max_files10,//允许同时打开的最大文件数限制资源占用.format_if_mount_failedtrue,//挂载失败时自动格式化首次使用/文件系统损坏时生效};这一步是定义SPIFFS的挂载规则比如后续要读写/spiffs/config.json文件就是通过.base_path指定的路径访问.format_if_mount_failed是关键容错参数首次烧录固件后SPIFFS分区为空挂载会失败开启这个参数会自动格式化分区让挂载成功。2.注册并挂载SPIFFS到VFSerresp_vfs_spiffs_register(conf);if(err!ESP_OK){ESP_LOGE(SPIFFS,ERROR);}esp_vfs_spiffs_register是核心函数把SPIFFS文件系统注册到ESP-IDF的VFS虚拟文件系统中让ESP32可以用标准C文件操作函数如fopen/fwrite/fread访问SPIFFS若返回非ESP_OK比如分区不存在、Flash损坏打印错误日志。3.检查SPIFFS文件系统完整性erresp_spiffs_check(conf.partition_label);if(err!ESP_OK){ESP_LOGE(SPIFFS,spiffscheckerror);}else{ESP_LOGI(SPIFFS,spiffschecksuccess);esp_spiffs_check用于校验SPIFFS分区的完整性检查文件系统的元数据、目录结构是否损坏若损坏则打印错误需手动处理或重新格式化正常则打印成功日志。4.获取SPIFFS容量信息size_ttotal0,used0;erresp_spiffs_info(conf.partition_label,total,used);if(errESP_OK){ESP_LOGI(SPIFFS,total:%d,used:%d,total,used);}esp_spiffs_info读取SPIFFS分区的总容量和已用容量比如打印total:1048576,used:123456表示SPIFFS总大小1MB已使用约120KB方便开发者监控文件系统占用情况避免存储溢出。整体作用总结实际应用举例这段代码是ESP32使用SPIFFS的“初始化模板”完成后就能像操作普通文件一样读写SPIFFS里的文件比如//挂载成功后向/spiffs/test.txt写入内容FILE*ffopen(/spiffs/test.txt,w);if(f){fprintf(f,HelloSPIFFS!);fclose(f);ESP_LOGI(SPIFFS,文件写入成功);}//读取/spiffs/test.txt的内容charbuf[32]{0};ffopen(/spiffs/test.txt,r);if(f){fread(buf,1,sizeof(buf)-1,f);fclose(f);ESP_LOGI(SPIFFS,读取到内容%s,buf);//输出HelloSPIFFS!}小编也为零基础小白整理了一份嵌入式学习资料大全。思维导图、C语言学习、单片机、学习笔记、实例项目……你需要的知识都在这儿