错误处理(基于ESP-IDF)

主要参考资料
B站Up主孤独的二进制《错误处理 - 乐鑫 ESP32 物联网开发框架 ESP-IDF 开发入门》
ESP-IDF编程指南>API指南>错误消息: https://docs.espressif.com/projects/esp-idf/zh_CN/v5.1/esp32s3/api-guides/error-handling.html
ESP-IDF编程指南>API指南>严重错误: https://docs.espressif.com/projects/esp-idf/zh_CN/v5.1/esp32s3/api-guides/fatal-errors.html

目录

  • 概述
  • 可恢复错误
  • 不可恢复错误

概述

在这里插入图片描述

可恢复错误

上面有说,比如错误码就是ESP-IDF里的esp_err_t类型,使用 if 判断可以打印出来。
在这里插入图片描述
当然,错误码看起来不直观,ESP-IDF还提供了API可以转换为具体的错误消息,它在esp_err.c中有定义。

在这里插入图片描述

不可恢复错误

不可恢复错误的第二类和第三类属于底层代码,一般不需要我们动,它会自己重启处理。
对于可恢复错误里的错误码,可以使用断言(assert)处理,只是在ESP-IDF中有专有的断言API。

有如下几种:
在这里插入图片描述

以ESP_ERROR_CHECK为例,非ESP_OK就会导致重启和打印。
在这里插入图片描述

打印信息如下:
在这里插入图片描述

另一个在ESP-IDF源码中比较常见的是goto语句
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/623114.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第十五届蓝桥杯单片机组备赛——中断系统与外部中断应用

文章目录 一、中断系统二、中断应用 一、中断系统 中断源:IAP15F2K61S2有多个中断源,包括外部中断0/1,定时器/计数器0/1/2/3,串行接口,SPI接口,ADC 转换结束中断,PCA模块,比较器中断…

二、QT下载、安装及问题解决(windows系统)

本章节最重要的一点:安装时,路径中不能有中文,切记,否则QT不能正常运行。 下载两种途径: 1、官网下载,慢且不好访问; 2、国内一些大学网站的镜像,下载比较快,但是可能…

Android中的anr定位指导与建议

1.背景 8月份安卓出现了一次直播间卡死(ANR)问题,且由于排查难度较大,持续了较长时间。本文针对如何快速定位安卓端出现ANR问题进行总结和探讨. 这里大致补充一下当时的情况,当时看到情景的是从某一个特定的场景下进入直播间后整个直播间界面立刻就卡住…

lenovo联想笔记本电脑拯救者Legion Y7000 2019 PG0(81T0)原装出厂Windows10系统

链接:https://pan.baidu.com/s/1fn0aStc4sfAfgyOKtMiCCA?pwdas1l 提取码:as1l 联想拯救者原厂Win10系统自带所有驱动、出厂主题壁纸、系统属性联机支持标志、系统属性专属LOGO标志、Office办公软件、联想电脑管家等预装程序 所需要工具:…

更换为mainwindow.ui更新工程架构

文章目录 前言一、新建带mainwindow.ui的工程1.新建工程2. 添加工程模块添加opencv的库3.添加资源3.1工程上添加资源3.2引用资源 4.添加曲线文件4.1 复制关键文件到新工程4.2 新进显示曲线的ui带.h的为了方面名字取一样4.3添加曲线显示控件4.4 添加工具 5. 添加曲线.h文件内容6…

MySQL之单表查询

素材: 表名:worker-- 表中字段均为中文,比如 部门号 工资 职工号 参加工作 等 CREATE TABLE worker ( 部门号 int(11) NOT NULL, 职工号 int(11) NOT NULL, 工作时间 date NOT NULL, 工资 float(8,2) NOT NULL, 政治面貌 varchar(10) NO…

2.1 python文本处理-正则表达式

python正则模块介绍 标准库模块 re 模块方法 # 将正则表达式样式编译成一个正则对象。一般用于多次使用正则对象的场景 re.compile(pattern) # 扫描string字符串并查找符合patten样式的第一个位置,返回对应的 Match 结果,否则返回 None re.search(patt…

数据库结构文档生成(通过PDMReader)

将数据库的表结构生成数据库结构文档有三种方法: 1、通过 PDMReader生成文档; 2、使用EZDML 工具生成(下载地址:EZDML - 下载); 3、使用SCREW 插件,通过java代码生成。 本文章先介绍通过PDM…

Python入门0基础学习笔记

1.编程之前 在编写代码之前,还有两件事需要做: 安装 Python 解释器:计算机是没法直接读懂 Python 代码的,需要一个解释器作为中间的翻译,把代码转换成字节码之后再执行。 Python 是翻译一行执行一行。一般说的安装 …

kafka为什么快

消息发送 1、批量发送: Kafka 通过将多个消息打包成一个批次,减少了网络传输和磁盘写入的次数,从而提高了消息的吞吐量和传输效率。 2、异步发送: 生产者可以异步发送消息,不必等待每个消息的确认,这大大提高了消息发送的效2.率 …

Spring Boot源码解读与原理分析

解读和分析Spring Boot的源码与原理是一项深入且复杂的任务,主要因为Spring Boot是一个庞大的项目,涵盖了众多的Spring框架特性。以下是一些关键点,可以帮助你理解Spring Boot的工作原理: 1. 起点:SpringApplication …

【开源】基于JAVA语言的康复中心管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 普通用户模块2.2 护工模块2.3 管理员模块 三、系统展示四、核心代码4.1 查询康复护理4.2 新增康复训练4.3 查询房间4.4 查询来访4.5 新增用药 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVueSpringBootMySQL的康复中…

Java:List转换List

我们经常会遇到泛型转换泛型的时候,今天我们就介绍下使用java1.8和普通转换,其中测试数据自行添加 Data public class Study1{private String no; // 学号private String name; // 姓名 }Data public class Study2{private String no; // …

css3 2D与3D转换

css3 2D与3D转换 前言2D变形旋转变形 rotate()transform-origin属性 缩放变形 scale()斜切变形 skew()位移变形 translate() 3D变形3D旋转 rotateX() | rotateY()perspective属性 空间移动 制作一个正方体结语 前言 网页设计不再局限于平面,而是充满了立体感和动态…

Learning Vision from Models Rivals Learning Vision from Data

Learning Vision from Models Rivals Learning Vision from Data 论文:https://arxiv.org/abs/2312.17742 TL; DR:只使用机造数据进行训练达到了与真实数据训练相当的效果。本文提出了 SynCLR。首先使用 LLM 来根据视觉概念词生成图像描述,再…

WEB 3D技术 three.js 点光源

本文的话 我们来设置一下点光源 点光源其实最直观的就是可以做萤火虫 也可以做星光 点点的效果 我们可以直接在官网中搜索 Pointlight 大家可以在官网这里看一下 其实 SpotLight 聚关灯中的属性 Pointlight 点光源也有的 我们先编写代码如下 import ./style.css import * a…

Codeforces Round 768 (Div. 1) D. Flipping Range(思维题 等价类性质 dp)

题目 思路来源 官方题解 洛谷题解 题解 可操作的最短区间长度肯定是gcd,记为g,然后考虑如何dp 考虑g个等价类,每个等价类i,ig,i2*g,... 每次翻转长度为g的区间,会同时影响到g个等价类总的翻转的奇偶性, 性质一&…

SpringCloud.04.熔断器Hystrix( Spring Cloud Alibaba 熔断(Sentinel))

目录 熔断器概述 使用Sentinel工具 什么是Sentinel 微服务集成Sentinel 配置provider文件,在里面加入有关控制台的配置 实现一个接口的限流 基本概念 重要功能 Sentinel规则 流控规则 简单配置 配置流控模式 配置流控效果 降级规则 SentinelResource…

模拟器安装XPosed框架教程

Xposed框架下载(搞不懂就先看完本篇教程再下载) 99%的情况只需要下载里面的XPosed鸭就行了 安卓8及以下XPosed框架 - 多开鸭模拟器安装XPosed框架图文视频教程 关于本站XPosed框架的说明 XPosed框架(即XP框架),由rovo89开发。适用于安卓7以…

把模板作为元函数参数传递。

C模板元编程是一种典型的函数式编程,函数在整个编程体系中处于核心的地位。 这里的函数与一般C程序中定义的函数有所区别,其更接近数学意义上的函 数——是无副作用的映射或变换:在输入相同的前提下,多次调用同一个函数&…