- 博客(44)
- 收藏
- 关注
原创 [锂电池]锂电池入门指南
本文系统介绍了锂电池的基本原理、分类及关键性能参数。锂电池通过锂离子在正负极间的移动实现充放电,根据正极材料不同可分为钴酸锂、锰酸锂、三元锂、磷酸铁锂和钛酸锂等多种类型。文章详细对比了各类电池的电压特性、循环寿命、热稳定性和能量密度等参数,并解释了电池容量、内阻、充放电倍率等概念。同时介绍了电池的封装形式、工作温度范围、寿命评估方法以及串并联应用时的注意事项。最后指出要实现锂电池的安全稳定运行,必须配备电池管理系统(BMS)进行参数监控。
2025-07-15 23:56:24
1015
原创 [C语言]static关键字详解
C/C++中的static关键字具有多重功能,主要用于控制变量和函数的生命周期与作用域。对于局部变量,static使其生命周期延长至整个程序运行期,仅初始化一次并保留值;对于全局变量和函数,static限制其仅在当前文件可见,避免命名冲突。静态变量存储在全局/静态区,未初始化时自动赋零值。典型应用包括计数器保持和文件私有数据封装,通过改变存储位置和可见性实现不同需求。
2025-07-15 01:46:58
231
原创 [ESP32]VSCODE+ESP-IDF环境搭建(实测有效)
本文详细介绍了ESP32开发环境搭建及点灯程序烧录的全流程。主要内容包括:1)下载VSCode和ESP-IDF工具链;2)安装软件并配置Python环境,包括设置清华镜像源、安装/升级pip;3)VSCode插件安装及ESP-IDF扩展配置;4)选择例程、配置芯片型号和下载模式;5)编译烧录过程及注意事项。整个流程涉及多个工具配置和环境设置,特别强调了Python环境管理和路径配置的关键点,最终实现LED闪烁的测试程序。该指南完整记录了从零开始搭建ESP32开发环境的详细步骤。
2025-07-08 20:21:03
916
原创 [C语言]存储结构详解
C语言数据存储结构总结:程序内存分为代码区(.text)、常量区(.rodata)、全局/静态区(.data/.bss)、堆区(heap)和栈区(stack)五个分区。全局变量和静态变量存储在全局/静态区,局部变量在栈区,动态分配的内存在堆区,字符串常量在.rodata段。const全局变量位于常量区,而const局部变量仍在栈区。静态局部变量虽作用域受限但存储在全局区。内存布局从低地址到高地址依次为代码段、常量段、数据段和堆栈段。通过地址打印可验证不同类型变量的存储位置差异。
2025-06-30 01:40:16
319
原创 [C语言]typedef关键字详解
typedef 是 C/C++ 中用于为现有数据类型创建别名(如 typedef int Int32)的关键字,可增强代码可读性和维护性。主要用途包括:简化结构体声明(typedef struct{...} Point)、定义指针类型(typedef char* String)、处理函数指针(typedef int (*FuncPtr)())等。与 #define 相比,typedef 具有类型安全性和作用域限制的优势。C++11 后推荐使用 using 替代(如 using IntPtr = in
2025-06-29 13:44:12
257
原创 [C语言]sizeof关键字详解
sizeof是C/C++中的运算符,用于获取对象或类型的内存大小(字节数)。它在编译时求值,返回size_t类型结果。基本用法包括查询数据类型大小(如sizeof(int))、变量大小(sizeof arr)和表达式结果类型大小。特殊特性:不计算表达式实际值(如sizeof(i++)不会增加i),能区分数组和指针的大小。常用场景包括动态内存分配、计算数组元素个数和分析结构体内存对齐。注意用%zu打印结果,与strlen不同,sizeof包含字符串的'\0'。
2025-06-29 13:17:12
343
原创 [C语言]数据类型关键字详解
本文详细介绍了C语言的基本数据类型及其特性。主要内容包括:整型(int)、字符型(char)、浮点型(float/double)、无类型(void)等核心数据类型,以及短整型(short)、长整型(long)和有符号/无符号(signed/unsigned)修饰符。文章通过表格对比了各类型的存储大小、取值范围,并提供了典型示例代码。还说明了类型修饰符组合使用方式,以及跨平台差异、隐式转换、溢出处理等注意事项。该文档可作为C语言数据类型使用的快速参考指南。
2025-06-29 13:00:11
829
原创 [C语言]const关键字详解
本文详细介绍了C语言中const关键字的用法。const用于创建只读变量,防止意外修改并提高代码可读性。主要应用包括:替代宏定义常量、保护函数参数、与指针组合提供不同保护级别、保护返回值以及硬件寄存器访问。使用时需注意const变量必须初始化,在C中不能作为数组大小,理解const指针的复杂组合,避免危险的类型转换绕过const限制。const还可与volatile结合使用,保护硬件寄存器等特殊场景。合理使用const能增强代码安全性和可维护性。
2025-06-29 03:16:19
337
原创 [C语言]volatile关键字详解
volatile是C语言中防止编译器优化的类型修饰符,确保变量每次从内存读取而非缓存。主要应用于硬件寄存器访问、中断服务程序中的共享变量、多线程环境及延时循环计数器。它能防止优化和重排序,但不保证线程安全,过度使用会影响性能。典型用法包括映射硬件地址、ISR标志位等场景,常与const结合使用。使用时需注意其并非原子操作,多线程仍需同步机制。
2025-06-29 02:47:35
319
原创 [ESP32]ESP32S3学习(一)ESP32系列型号概览和命名规则
乐鑫科技推出的ESP32系列SoC芯片(包括ESP8266、ESP32、S2/S3/C3/H2等子系列)在CPU架构、内存配置、无线连接功能等方面存在显著差异。其中,ESP32-S3系列采用双核RISC-V架构,支持Wi-Fi/蓝牙双模,最高频率240MHz,配备512KB SRAM和16MB闪存,适用于智能家居等低功耗场景。型号命名规则通过字母组合标识芯片特性,如F表示内置闪存,R表示内置PSRAM。此外,乐鑫还推出基于这些芯片的模组产品(如WROOM系列),通过不同天线设计满足多样化需求。
2025-06-18 00:58:09
1004
原创 [git]GIT提交带GPG签名改动到GITEE的配置方法
GPG(GNU Privacy Guard)是一种开源的加密软件,用于数据加密和数字签名。它基于 PGP(Pretty Good Privacy)协议实现,广泛应用于保护电子邮件、文件等数据的隐私和完整性。在 GPG 中,公钥是密钥对(公钥和私钥)的一部分。密钥对是通过加密算法生成的,公钥可以公开分发,而私钥则需要严格保密。公钥和私钥之间的关系是:用公钥加密的数据只能用对应的私钥解密,而用私钥签名的数据可以用公钥验证。通过以上步骤,你可以确保你的提交也经过 GPG 签名,增强代码的可信度!
2025-02-23 01:16:37
412
原创 [ESP32]Arduino开发环境修改Flash分区
用arduino开发esp32的时候,因为使用的都是各种的库,所以很可能为了实现功能而加了一堆库导致代码很大,超过了用来存储代码的空间,所以需要重新设置一下各个分区的大小。
2024-07-11 19:02:37
1455
1
原创 [BMS]国标快充协议GBT27930
充电每 250ms 发送 充电机最大输出能力 1808F456 (CML)报文 500ms 发送 时间同步报文 101AF456(CTS) 250ms 发送 充电机准备就绪报文(CRO 00) 0x100AF456。BMS 收到 CML报文后 发送 BMS充电准备就绪 100956F4 (BRO AA)报文 充电机收到后 回复 充电机准备就绪报文 0x100AF456(CRO AA)充电机收到后回复 1CECF456 然后 250ms 发送充电辨识报文 0x1801F456 (CRM AA)
2024-05-30 17:35:23
2651
INA226模块单片机驱动代码
2024-03-13
嵌入式c语言代码编写规范
2024-03-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人