自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(305)
  • 收藏
  • 关注

原创 (五)ESP32-S3之DHT11

DHT11 是一款温湿度一体化的数字传感器。该传感器包括一个电容式测湿元件和一个 NTC测温元件,并与一个高性能 8 位单片机相连接。通过单片机等微处理器简单的电路连接就能够实时的采集本地湿度和温度。DHT11 与单片机之间能采用简单的单总线进行通信,仅仅需要一个 I/O 口。传感器内部湿度和温度数据 40Bit 的数据一次性传给单片机,数据采用校验和方式进行校验,有效的保证数据传输的准确性。DHT11功耗很低,5V电源电压下,工作平均最大电流0.5mA。

2025-09-25 11:11:03 737

原创 (十二)ESP32-S3之lvgl移植(基于st7789v+cst816)

【代码】(十二)ESP32-S3之lvgl移植(基于st7789v+cst816)

2025-09-23 10:02:54 169

原创 Android studio 导入svg格式的图片

删除test.svg即可,test.xml即为导入的svg图片。在drawable目录下加入test.svg。右键新建Vector Asset。

2025-09-19 11:53:39 165

原创 安卓的Message与handler?

在Android开发中,和是用于线程间通信的机制,特别是在主线程(UI线程)和后台线程之间传递数据和执行任务时非常有用。下面详细解释一下它们的概念、工作原理以及如何使用它们。

2025-09-19 11:47:34 278

原创 (十七)ESP32-S3之UDP与TCP

①:配置 ESP32-S3 设备连接网络(必须的,因为 WiFi 是无线通信,所以需搭建通信桥梁)。①:配置 ESP32-S3 设备连接网络(必须的,因为 WiFi 是无线通信,所以需搭建通信桥梁)。请注意,该函数的第二个参数指定连接类型。SOCK_STREAM 表示 TCP 连接,而 SOCK_DGRAM 表示 UDP 连接。SOCK_STREAM 表示 TCP 连接,而 SOCK_DGRAM 表示 UDP 连接。SOCK_STREAM 表示 TCP 连接,而 SOCK_DGRAM 表示 UDP 连接。

2025-09-11 17:05:09 467

原创 (十六)ESP32-S3之STA与AP

【代码】(十五)ESP32-S3之STA与AP。

2025-09-11 17:03:30 215

原创 (十五)ESP32-S3之WiFi 一键配网

SoftAP 配网ESP32-S3 会建立一个 WiFi 热点(AP 模式),用户将手机连接到这个热点后,将要连接的WiFi 信息发送给 ESP32-S3,ESP32-S3 得到 SSID 和密码。①:优点:很可靠,成功率基本达到 100%,设备端的代码简单。②:缺点:需要手动切换手机 WiFi 连接的网络,先连接到 ESP32 的 AP 网络,配置完成后再恢复连接正常 WiFi 网络,操作上存在复杂性,可能给用户带来困扰。③:官方支持:没有提供 Demo。

2025-09-11 14:54:51 931

原创 (十一)ESP32-S3之SPIFFS

SPIFFS 是一个用于嵌入式目标上的 SPI NOR flash 设备的文件系统,并且有如下特点:⚫ 小目标,没有堆的少量 RAM⚫ 只有大范围的数据块才能被擦除⚫ 擦除会将块中的所有位重置为 1⚫ 写操作将 1 置 0⚫ 0 只能被擦除成 1⚫ 磨损均衡以上几点是 SPIFFS 的特点,下面则说明了 SPIFFS 具体能做些什么:⚫ 专门为低 ram 使用而设计⚫ 使用静态大小的 ram 缓冲区,与文件的数量无关。

2025-09-11 14:24:00 885

原创 (十八)ESP32-S3之MQTT

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(Publish/Subscribe)模式的轻量级通讯协议,该协议构建于 TCP/IP 协议上,由 IBM 在1999 年发布,目前最新版本为 v3.1.1。MQTT 最大的优点在于可以以极少的代码和有限的带宽,为远程设备提供实时可靠的消息服务。做为一种低开销、低带宽占用的即时通讯协议,MQTT在物联网、小型设备、移动应用等方面有广泛的应用,MQTT 协议属于应用层。

2025-09-11 13:57:50 784

原创 (二十)ESP32-S3之NVS

NVS(Non-volatile storage,非易失存储),意思是掉电后能依然能持久化保存数据。在我们应用 NVS 时,一般用于存储一些配置数据、状态数据等,一般不会用来存储存放大量的数据量。在嵌入式系统中,NVS 主要是在 Flash 进行键值对的存储。举个例子,假设我们要把东西存到 Flash 中,按照底层的操作习惯,我们要先指定一个地址,然后对这个地址执行擦除操作,然后才能写入;读取的时候也需要根据这个地址,然后指定读取长度。

2025-09-11 11:58:21 899

原创 (十九)ESP32-S3之分区表

分区表简介ESP32 分区表在 ESP32 的 flash 存储管理中扮演着至关重要的角色。其主要意义体现在以下几个方面:1,存储空间优化:通过将 flash 划分为不同的区域,每个区域根据其功能进行定义,可以更有效地利用存储空间。开发者可以根据实际需求为不同的应用或数据分配适当的存储空间,确保资源得到最大化利用。2,数据管理和维护:每个分区都有其特定的作用,比如存储应用程序、文件系统数据、校准数据等。这种分区的设置使得数据的管理和维护变得更加方便。

2025-09-11 11:18:16 780

原创 解决 fatal: Not a git repository (or any of the parent directories): .git 问题

进入相应要上传的已经修改的文件的文件夹下面,再运行git status或者其它命令。

2025-09-06 14:31:23 125

原创 ContentResolver与ContentObserver是什么?

是 Android 中用于管理和监听内容提供者(ContentProvider)数据的两个重要组件。它们在数据访问和变化监听方面各有不同的职责,但通常会结合使用以实现数据的动态和实时更新。是用于监听内容提供者数据变化的观察者。当数据发生变化时,ContentObserver 会收到通知,从而可以执行相应的操作,例如更新 UI 或重新加载数据。通常,ContentResolver 和 ContentObserver 会结合使用,以实现数据的动态更新。是用于访问内容提供者的主要接口。

2025-09-04 17:20:37 465

原创 C:\Users\admin\.gradle\caches\8.9\transforms\db632407b61316fd2e382552ad519fe1\metadata.bin

C:\Users\admin.gradle\caches\8.9\transforms\db632407b61316fd2e382552ad519fe1\metadata.bin (系统找不到指定的文件。删除transforms文件夹即可。若不行,重启再删除。

2025-09-02 10:46:21 169

原创 (十三)ESP32-S3之INMP441采集音频+MAX98357A播放音频

INMP441采集音频+MAX98357A播放音频。MAX98357A播放音频测试。INMP441采集音频测试。

2025-09-01 19:03:39 193

原创 Binder是连接服务与管理的桥梁?

你的调用流程在架构上是合理的,但需要确保每个组件的接口定义清晰、实现正确,并且整个流程具有良好的错误处理和性能优化。如果有具体的实现细节或遇到的问题,可以进一步讨论和优化。

2025-08-29 12:06:10 622

原创 (十四)ESP32-S3之WiFi扫描

lwIP,全称为 Lightweight IP协议,是一种专为嵌入式系统设计的轻量级 TCP/IP协议栈。它可以在无操作系统或带操作系统环境下运行,支持多线程或无线程,适用于 8 位和 32 位微处理器,同时兼容大端和小端系统。它的设计核心理念在于保持 TCP/IP 协议的主要功能同时尽量减少对 RAM 的占用。这意味着,尽管它的体积小巧,但它能够实现完整的 TCP/IP 通信功能。通常,lwIP 只需十几 KB 的 RAM 和大约 40K 的 ROM 即可运行,使其成为资源受限的嵌入式系统的理想选择。

2025-08-27 19:04:29 832

原创 (十三)ESP32-S3之IIS

在音频处理领域,I2S是一种广泛使用的通信协议,它专门用于芯片之间的音频数据传输。ESP32 作为一款高性能的微控制器,不仅支持 I2S 通信,还提供了强大的硬件接口和灵活的软件库,使其成为音频项目开发的理想选择。传统的音频设备,像模拟电路,传递的是电压信号,这种方式容易受到干扰,比如噪声或者信号衰减。而数字音频需要传输数据,通常是二进制的“0”和“1”,直接用模拟接口传输会很麻烦。而 I2S就是为了解决这个问题的一种数字音频接口,它让音频数据的传输变得简单、高效、而且抗干扰能力强。

2025-08-27 13:36:16 801

原创 public void onAttach(Context context) { super.onAttach(context);}有什么用?

方法在Fragment被附加到Activity时调用,主要用于获取Activity的引用、初始化资源和设置监听器等操作。正确地重写和调用是确保Fragment正常工作的关键。

2025-08-25 14:10:37 276

原创 (十二)ESP32-S3之lvgl移植(基于st7789v)

在 main 文件夹下,新建 Lvgl_port 文件夹,并新建两个文件:lvgl_port.c、lvgl_port.h,这两个文件用于存放 LVGL 移植相关的代码,主要就是配置显示屏和触摸输入驱动(目前屏幕无触摸,注释触摸功能)。上表中,与 LVGL 移植相关的有 examples 文件夹、src 文件夹、lv_conf_template.h 和 lvgl.h。第二步:调用 lv_port_disp_init函数和 lv_port_indev_init函数,注册显示设备和输入设备。

2025-08-22 10:19:59 837

原创 VScode+IDF编译遇到rgb_panel_draw_bitmap,internal compiler error: Segmentation fault

解决办法:首先Ctrl+Shift+P快捷键,然后搜索ESP-IDF,配置编辑器,然后搜索Optimization level,将Complier options改为Optimize for performance (-O2)或Debug (-Og),然后保存,重新编辑,就编译成功了。VSCode 的(优化级别)主要用于控制编译器对代码的优化策略,主要影响生成代码的性能、调试友好性和文件大小。

2025-08-18 15:50:29 905

原创 8KB is recommended. 14 | #error Insufficient memory for lv_demo_widgets. Please set LV_MEM_SI

中控制LVGL内置内存池大小,若未达到要求会直接报错[citation:4][citation:8][citation:10]。宏,可能导致内存管理混乱。需确保两者配置一致[citation:8]。设置为至少38KB(推荐48KB)。通过以上调整,可解决因内存不足导致的编译错误。原因:只使用内部ram,还没开启外部PSRAM。

2025-08-18 13:59:23 884

原创 解决VSCode+ESP-IDF插件编译速度慢的办法之一

一开始没考虑这种方案,因为下载过的联想管家在几个月前就被卸载了,但后面没招了,就尝试win+搜索“管家”,结果真出现个管家,好像是微软自带的,卸载之后编译速度由原来的半小时直接减少到几分钟编译完,泪目。

2025-08-18 10:02:29 180

原创 Failed to set target esp32s3: non zero exit code 2 CMakeLists.txt not found in project directory

原因:用vscode打开两层文件夹,导致编译错误。解决:应该打开最底层文件夹。

2025-08-18 09:38:07 280

原创 Android Shape 如何使用?

存放在。

2025-08-14 13:53:44 398

原创 style、drawable、background的区别?

(如字体、颜色、边距等),用于统一 UI 风格。三者协作实现界面样式的统一管理和灵活定制。,可以是图片、形状、颜色或动画。在 Android 开发中,

2025-08-14 10:01:46 289

原创 java: 程序包javax.servlet不存在?

程序包javax.servlet不存在”的错误通常是由于缺少Servlet API的依赖。通过使用构建工具(如Maven或Gradle)管理依赖,或者手动添加JAR包,可以解决这个问题。如果你在配置过程中遇到其他问题,欢迎进一步提问!

2025-08-12 11:22:34 496

原创 java: 程序包javafx.fxml不存在?

出现“程序包javafx.fxml不存在”的错误,通常是因为JavaFX库没有正确添加到项目中。

2025-08-11 11:27:47 867

原创 java异常处理?

在Java中,抛出异常是一种强大的错误处理机制,允许程序员在遇到无法处理的情况时,通知调用者并提供相关的信息。合理地使用异常可以提高代码的可读性和可维护性,但也要注意不要过度使用,以免使代码变得混乱。在编程中,异常处理(使用try-catch块和throw语句)和条件判断(使用if-else语句)是两种不同的错误和异常处理机制。选择使用哪一种方式取决于具体的场景和需求。以下是使用异常处理而不是if-else虽然if-else。

2025-08-11 10:26:15 916

原创 settings:keywords?

是 Android Settings 模块中用于 增强设置项的可发现性 和 语义理解 的自定义属性。它通常用于 搜索优化 和 快速访问,帮助用户更方便地找到相关设置。属性类型: 是一个 自定义 XML 属性,用于为 控件添加 关键词,这些关键词用于 搜索匹配 和 语义理解。主要作用:搜索匹配:当用户在设置应用中输入搜索词时,系统会查找所有 的 ,并返回匹配的结果。语音助手查询:智能助手(如 Google Assistant)可以使用 来理解用户查询的意图,并直接跳转到相关设置项。快捷方式:某些

2025-08-08 17:17:27 1044

原创 settings:controller=“com.android.settings.network.TopLevelNetworkEntryPreferenceController“这是什么?

在Android的Settings模块中,属性用于将XML布局中的Preference控件与具体的关联起来,实现设置项的交互功能。

2025-08-08 15:42:15 337

原创 PreferenceScreen是什么控件?如何自动关联SharedPreferences?

/ 在Activity中指定@Override。

2025-08-08 15:15:35 781

原创 安卓主题颜色设置?

很显然,我们只要将AppTheme中colorPrimaryDark修改为APP设计中的统一风格即可。主要是window的一些配置。动态修改APP状态栏颜色。修改APP Theme。

2025-08-08 11:53:59 203

原创 状态栏颜色无法自动跟随应用界面变化的问题?

如需进一步定位问题,建议提供具体代码片段或界面跳转逻辑。根据现有信息,可优先检查平台配置和动态颜色设置的索引逻辑。

2025-08-08 11:42:53 792

原创 android:configChanges=“orientation|screenSize|keyboardHidden|screenLayout|uiMode“什么意思?

这个配置常见于需要保持界面连续性的场景(如录音/录像过程中旋转屏幕),但要注意必须同时在Activity中实现。:当这些配置变更发生时,系统不会重建Activity,而是触发。处理屏幕尺寸变化(适配API 13+的分屏模式/多窗口模式)回调方法,需要开发者在Activity中手动处理布局调整。处理物理键盘的可用性变化(如外接键盘插拔)来处理布局适配,否则可能导致UI显示异常。处理UI模式变化(夜间模式/车载模式等)处理屏幕布局变化(如不同显示模式切换)处理屏幕方向改变(竖屏/横屏切换)

2025-08-08 10:19:22 209

原创 C语言的%2d与%02d?

在C语言的printf格式字符串中,如果要实现补零效果,需要改用。

2025-08-06 11:29:53 244

原创 按钮选中时有蓝色框,如何实现?

如果你希望更灵活地管理边框样式,可以单独创建一个蓝色边框的Drawable。例如,创建-- 透明背景 --> < stroke android: width = " 2dp " android: color = " #0000FF " /> <!-- 蓝色边框 --> < corners android: radius = " 4dp " /> <!-- 圆角半径 --> </ shape >

2025-08-01 11:48:32 844

原创 安卓按钮背景色修改为白色失效?

主题颜色默认为紫色,所以按钮背景色为紫色,使用android:background会失效。直接将主题颜色修改为白色即可。

2025-07-31 14:42:05 149

原创 LinuxPrereqs │ 远程主机可能不符合 glibc 和 libstdc++ VS Code 服务器的先决条件 (远程主机不满足运行)

由于之前未关闭VsCode的自动更新,导致了VsCode版本过高,今天在链接虚拟机时产生报错:LinuxPrereqs │ 远程主机可能不符合 glibc 和 libstdc++ Vs code 服务器的先决条件。2、重新安装VsCode以后它可能无法找到之前安装的插件,如果再重新下载插件会很麻烦,此时可以通过设置插件的默认路径帮助VsCode找到之前的插件。安装后,打开设置界面关闭当前VsCode的自动更新,防止后续出现同样的问题;1.101.2版本太高,回退vscode版本,重新下载一个旧版本,下载。

2025-07-28 14:32:03 531

原创 为什么1.3寸和1.54寸屏幕都使用240x240分辨率?

确实存在1.3寸屏幕也使用240x240分辨率的情况[citation:12]。

2025-07-28 09:45:49 336

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除