- 博客(22)
- 收藏
- 关注
原创 嵌入式开发必看!C语言中的typedef struct位域语法:精准操控硬件的「位级神器」
嵌入式开发必看!C语言中的typedef struct位域语法:精准操控硬件的「位级神器」
2025-09-12 08:27:33
321
原创 嵌入式开发避坑指南:用goto语句配合cleanup标签,实现资源的集中式释放,优雅解决资源泄漏问题
嵌入式开发避坑指南:用goto语句配合cleanup标签,实现资源的集中式释放,优雅解决资源泄漏问题
2025-09-11 09:31:22
293
原创 深入理解FreeRTOS的xEventGroupWaitBits函数:多任务同步的利器
本文深入解析了FreeRTOS中xEventGroupWaitBits函数的用法和实战技巧。该函数是事件组实现任务同步的核心机制,允许任务等待特定事件标志位,实现高效的多任务协同。文章详细介绍了函数参数,包括事件位掩码、自动清除选项、逻辑判断模式和超时设置,并通过一个包含传感器采集、网络监控和数据处理的多任务系统案例,展示了实际应用场景。最后总结了常见使用技巧,如多条件触发、超时控制和事件位复用等,帮助开发者更好地利用该函数优化嵌入式系统的任务协作。
2025-09-09 08:37:45
845
原创 ESP-IDF 官方基础组件:让你的开发效率飙升
ESP-IDF官方基础组件是ESP32开发的重要工具,位于安装目录的components文件夹中,无需额外下载。使用时只需包含头文件,编译时自动链接构建,简化开发流程。官方文档提供详细说明和示例,建议查阅指导。使用时需注意版本兼容性和头文件路径等问题。这些组件能显著提高开发效率,是ESP32开发的得力助手。
2025-09-08 10:08:51
277
原创 VSCode+IDF插件调用ESP32官方组件库教程
对于不少刚接触ESP-IDF开发的小伙伴来说,用VSCode的IDF插件调用官方组件库总像隔着一层迷雾。别慌,今天这篇超详细教程,带你一步到位搞定整个流程,哪怕是新手也能轻松上手!
2025-09-05 08:43:28
884
原创 探秘C++中的&:从引用到取地址的多重身份
摘要:C++中的&符号具有多重功能。作为引用声明时,它创建变量别名,避免对象拷贝提高效率;作为取地址运算符,可获取变量内存地址用于指针操作;在函数参数中实现引用传递,直接修改实参且避免拷贝开销。理解&的不同用法对编写高效C++代码至关重要,它既能优化性能又能增强程序灵活性。
2025-09-04 15:34:04
356
原创 用C++宏定义简化工厂模式?这波操作太秀了!
本文介绍了一种使用宏定义简化C++工厂模式实现的方法。通过定义REGISTER_PRODUCT宏,可以自动完成产品类的注册过程,解决了传统工厂模式中重复编写注册代码的问题。该方案包含产品基类、工厂类、关键宏定义和具体产品实现四个部分,实现了对象创建与使用的解耦。相比传统实现,这种方法能显著减少代码量,提高开发效率和可维护性,特别适合管理大量相似类型对象的场景。注意事项包括宏定义的调试难度、类型命名的唯一性要求等。这种技巧为工厂模式提供了一种更简洁优雅的实现方式。
2025-09-03 08:42:43
282
原创 嵌入式开发必备!轻量级JSON库tiny-json详解,内存紧张场景救星来了
嵌入式开发必备!轻量级JSON库tiny-json详解,内存紧张场景救星来了
2025-09-02 08:35:17
1168
原创 单片机上用cJSON?小心这些“坑”让系统崩掉!
本文探讨了在嵌入式开发中使用cJSON库时可能遇到的内存问题及解决方案。文章指出,cJSON的动态内存分配机制在单片机有限的内存环境下容易导致内存占用过高、碎片化、泄漏等问题,影响系统稳定性。作者分析了cJSON的内存管理原理,列举了5个常见"坑",并提供了替代方案(如使用tiny-json)和优化建议(限制JSON结构、复用节点、自定义分配器等)。最后通过代码示例展示了常见错误及正确写法,强调在资源受限环境下需权衡功能与稳定性。
2025-09-01 08:36:37
537
原创 玩转多核!FreeRTOS 任务绑定核心的秘密武器:xTaskCreatePinnedToCore
xTaskCreatePinnedToCore的使用
2025-08-30 21:50:03
742
原创 单例模式:让你的类在程序中“独一无二”的设计智慧
唯一性:确保一个类在程序运行期间只存在一个实例,绝不允许“分身”出现;全局访问:提供一个统一的“入口”,让程序任何地方都能轻松访问这个唯一实例。简单来说,单例模式就像给类上了一把“独家锁”,只允许一个对象存在,同时留一把“万能钥匙”供全局调用。单例模式是一种“简单却精妙”的设计思想,它用最少的代码实现了“唯一性”和“全局访问”,在资源管理、状态控制等场景中不可或缺。不要为了用模式而用模式,只有当类确实需要“独一无二”时,再请单例模式“出山”。
2025-08-28 09:32:01
377
原创 详解 C/C++ 中 sizeof 函数的用法,这篇就够了!
sizeof快速获取各种数据类型、变量、数组、结构体的内存大小;编译期计算,不影响运行效率;但要注意数组作为函数参数时的“退化”问题。掌握了sizeof的用法,你对程序的内存占用会有更清晰的认识,写出更高效的代码~ 你在使用sizeof时遇到过哪些问题?欢迎在评论区留言讨论!
2025-08-26 16:28:20
782
原创 python写的自动买大麦网票软件
在热门演出门票一票难求的情况下,手动抢票往往难以成功。本文将介绍如何使用Python+Selenium实现一个自动化抢票脚本,帮助你在热门演出开票时快速抢到心仪的门票。
2025-01-25 10:31:29
1582
原创 sizeof函数用法说明
sizeof可以用于数据类型、变量、数组、结构体等,返回它们在内存中的大小,单位是字节。它在编译期计算,运行时效率高。注意当数组退化为指针时,sizeof返回的是指针的大小。
2025-01-20 17:28:51
644
原创 使用WIFI芯片FC41D,KF32A152芯片控制,实现WIFI服务器端通信回环测试
以KF32A152的MCU为例,通过UART与FC41D芯片连接,进行项目工程开发,实现WIFI通信回环功能
2024-08-24 10:26:14
1156
原创 使用W5500芯片,KF32A152芯片控制,实现网口TCP通信回环测试
其内部还集成了以太网数据链路层(MAC)和10BaseT/100BaseTX 以太网物理层(PHY),支持自动协商(10/100-Based全双工/半双工)、掉电模式和网络唤醒功能。与传统软件协议栈不同,W5500内嵌的8个独立硬件 Socket 可以进行8路独立通信,该8路Socket的通信效率互不影响,可以通过 W5500 片上32K 字节的收/发缓存灵活定义各个Socket的大小。W5500 芯片是一款集成全硬件 TCP/IP 协议栈的嵌入式以太网控制器,同时也是一颗工业级以太网控制芯片。
2024-08-24 09:41:36
469
原创 C语言中,printf、fprintf、sprintf、snprintf、vprintf、vfprintf、vsprintf和vsnprintf的区别与用法
printf: 将格式化输出发送到标准输出(控制台)。fprintf: 将格式化输出发送到指定的文件流。sprintf: 将格式化输出存储在一个字符串中,不检查缓冲区溢出。snprintf: 将格式化输出存储在一个字符串中,并指定最大写入字符数,以避免缓冲区溢出。vprintf: 与printf类似,但使用va_list类型的参数列表。vfprintf: 与fprintf类似,但使用va_list类型的参数列表。vsprintf: 与sprintf类似,但使用va_list类型的参数列表。
2024-07-31 08:01:10
1075
原创 C语言中,字符串转换数值的atof、atoi和atol函数的用法
atofatoi, 和atol是 C 语言标准库<stdlib.h>中定义的三个函数,用于将字符串转换为不同类型的数值:浮点数(atof)、整数(atoi)、长整数(atol。
2024-07-29 21:34:39
924
原创 c语言中strcpy和memcpy区别
strcpy用于复制以空字符结尾的字符串,并自动处理空字符。memcpy用于复制任意类型的数据,按照指定的字节数进行复制,不会处理空字符。处理字符串时,通常使用strcpy。处理二进制数据或指定长度的数据时,使用memcpy。
2024-07-28 11:07:41
370
原创 C++ 中,“.”、”->” 和”::”“三种常见的运算符,各自不同的用途和用法
运算符:用于访问对象的成员。运算符:用于通过指针访问对象的成员。运算符:用于访问类的静态成员、枚举值、命名空间成员或指定某个作用域。理解这三种运算符的区别和使用场景是掌握 C++ 编程语言的关键之一。
2024-07-20 10:01:39
1106
KF32A152芯⽚基于ChipON KungFu开发环境的开发流程
2024-08-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅