- 博客(87)
- 收藏
- 关注
原创 C++基础学习:深入理解类中的构造函数、析构函数、this指针与new关键字
在C++面向对象编程中,类是构建复杂程序的基本单元。今天,我们将深入探讨类中的几个核心概念:构造函数、析构函数、this指针以及new关键字。这些概念对于理解C++对象生命周期和内存管理至关重要。构造函数、析构函数、this指针和new关键字是C++面向对象编程中的核心概念。构造函数用于初始化对象,析构函数用于清理对象,this指针用于在类内部访问对象成员,而new关键字用于在堆上动态分配内存。理解这些概念对于编写高效、可靠的C++程序至关重要。
2025-06-10 23:01:16
256
原创 解决GIT问题:git@gitee.com: Permission denied (publickey).fatal: Could not read from remote repository.
最常见的原因就是公钥没有配置或者配置不正确。你可以按照上述步骤生成SSH密钥,然后添加到Git服务器,这样通常就能解决问题。要是问题依旧存在,建议联系Git服务器管理员,确认账户权限或者服务器配置情况。
2025-06-10 14:14:31
420
原创 C++ 类基础:封装、继承、多态与多线程模板实现
C++ 是一门强大的面向对象编程语言,而类(Class)作为其核心特性之一,是理解和使用 C++ 的关键。本文将深入探讨 C++ 类的基本特性,包括封装、继承和多态,同时讨论类中的权限控制,并展示如何使用类继承实现一个简单的多线程开发模板。C++ 类提供了封装、继承和多态等强大的面向对象特性,使得代码更加模块化、可重用和易于维护。合理使用类中的权限控制可以有效地保护数据的安全性和完整性。通过类继承实现多线程开发模板,可以方便地创建和管理多个线程,提高程序的并发性能。
2025-06-09 21:40:26
752
原创 C++基础进阶:函数、内联函数与Lambda函数详解
for_each 常用于遍历容器并对每个元素应用特定的函数或函数对象。模板参数:InputIterator:输入迭代器类型,表示要遍历的范围。Function:可调用对象类型,用于对每个元素执行操作。参数说明:first,last:输入范围的起始和结束迭代器,遍历范围为 [first, last)。f:函数或函数对象,对每个元素执行的操作。返回值:返回传入的函数对象 f,其可能被修改过(例如,包含了累积的状态)。
2025-06-08 18:49:35
534
原创 C++基础入门必看!命名空间、输入输出、变量类型与流程控制全解析
掌握这些概念是学习C++编程的第一步,它们为后续学习更复杂的C++特性(如面向对象编程、模板、异常处理等)打下了坚实的基础。C++是一种功能强大且广泛使用的编程语言,它结合了C语言的高效性和面向对象编程的灵活性。这些概念是学习C++编程的基石,掌握它们对于进一步学习C++至关重要。是C++中用于组织代码的一种机制,它可以避免名称冲突,特别是在大型项目中。通过使用命名空间,我们可以将相关的类、函数和变量封装在一起,提高代码的可读性和可维护性。在这个例子中,我们声明了四种不同类型的变量,并分别给它们赋了初值。
2025-06-08 17:01:53
115
原创 Makefile学习笔记二:Makefile函数精讲,让构建系统更智能的10个技巧
在上一篇文章中,我们介绍了Makefile的基本语法和核心概念。今天我们将深入探讨Makefile中那些强大而实用的函数,这些函数能够帮助我们更高效地管理构建过程。Makefile函数为我们提供了强大的工具集,能够高效地处理文件名、字符串和列表操作。熟练掌握这些函数可以显著提高Makefile的编写效率和可维护性。在实际项目中,建议根据具体需求选择合适的函数组合,并注意代码的可读性和可维护性。
2025-06-07 13:55:45
331
原创 Makefile基础入门:从编译小白到自动化构建达人
效率提升:减少90%以上的重复编译时间代码维护:集中管理编译配置跨平台:配合Autotools实现一键构建工程化:百万行代码项目的构建基石掌握Makefile不仅是掌握一个工具,更是理解软件构建的艺术。从手动敲命令到自动化构建的进化,正是程序员从"刀耕火种"到"工业化生产"的蜕变之路。自动依赖生成(-MMD选项)条件编译与平台适配结合CMake/Autotools构建系统现在,打开你的编辑器,为下一个项目编写第一个Makefile吧!
2025-06-04 16:32:20
411
原创 Linux中的守护进程:默默守护系统的无名英雄
在Linux系统中,守护进程(Daemon)是一种在后台运行的特殊进程,它不依赖于终端控制,通常用来执行系统级任务或服务。守护进程的名字来源于古希腊神话中的"守护精灵"(daemon)概念,正如其名,它们默默地在后台工作,维持着系统的正常运行。脱离终端控制,在后台运行生命周期通常很长,从系统启动到关闭通常以root权限运行没有控制终端,不会接收终端信号守护进程是Linux系统的基石,它们默默无闻地执行着各种关键任务。
2025-05-30 14:06:48
652
原创 Git紧急救援手册:遇到这些情况时别慌,这样做就对了!
Git虽然强大,但遇到问题时确实容易让人困惑。掌握这些常见场景的解决方案,能让你在遇到问题时从容应对。记住,Git几乎总能让你"回到过去",所以大胆尝试吧!小技巧:遇到不确定的操作前,可以先创建一个临时分支作为备份,这样即使操作失误也能轻松恢复。希望这篇指南能成为你Git旅途中的实用手册!遇到问题时不妨回来查阅,相信总能找到解决方案。
2025-05-13 16:07:29
195
原创 万物互联时代:ONVIF协议如何重构安防监控系统架构
ONVIF(Open Network Video Interface Forum,开放式网络视频接口论坛)是一种全球性的开放行业标准,由安讯士(AXIS)、博世(BOSCH)和索尼(SONY)于2008年共同发起,旨在解决不同品牌网络视频设备(如摄像头、录像设备等)的互通性问题。通过定义统一的接口和通信规范,ONVIF协议实现了设备发现、实时视频流传输、设备控制等功能,成为安防监控领域的主流标准。核心作用与优势互通性:打破厂商壁垒,支持跨品牌设备集成。灵活性:用户可自由选择设备,构建定制化监控方案。
2025-05-09 00:04:18
1740
原创 手把手教你玩转MPU6050:STM32F103C8T6直接驱动姿态传感器!
在嵌入式开发中,姿态传感器是一个非常有用的组件,而MPU6050作为一款集成了3轴陀螺仪和3轴加速度计的6DOF传感器,因其性价比高、使用简单而广受欢迎。今天,我将带大家从零开始,使用STM32F103C8T6直接驱动MPU6050,全程使用HAL库。3轴陀螺仪(量程可调:±250°/s、±500°/s、±1000°/s、±2000°/s)3轴加速度计(量程可调:±2g、±4g、±8g、±16g)内置数字运动处理器(DMP)I2C数字接口。
2025-04-26 18:06:33
1051
原创 深入解析CAN协议2:CAN协议层深度剖析,数据帧、仲裁与时序的精密设计
数据帧由7段组成。数据帧又分为标准帧(CAN2.0A)和扩展帧(CAN2.0B),主要体现在仲裁段和控制段。帧起始(Frame Start):功能:表示数据帧的开始。特点:由一个显性位(Dominant Bit)构成,此时CAN_H为高电平(如3.5V),CAN_L为低电平(如1.5V),二者之间的电位差形成信号。仲裁段(Arbitration Field):功能:确定发送优先级,并包含标识符(Identifier)用于唯一标识发送者和接收者之间的通信关系。
2025-04-12 10:36:03
948
原创 深入解析CAN协议1:从核心原理到物理层设计(CAN物理层介绍)
CAN是一种多主(Multi-Master)串行通信协议,由德国博世公司于1983年开发,最初用于解决汽车中复杂线束问题。其核心设计思想是通过非破坏性仲裁机制实现高效通信,确保多个节点可同时竞争总线而不会丢失数据。低速CAN(ISO11519)通信速率 10~125Kbps,总线长度可达 1000 米。高速CAN(ISO11898)通信速率 125Kbps~1Mbps,总线长度 ≤40 米。下图为CAN 的连接示意图。
2025-04-11 14:05:47
910
原创 掌握STM32低功耗开发!HAL库实战指南,让你的项目续航翻倍
STM32系列提供了三种主要低功耗模式,满足不同场景的能耗需求:上电后默认是在运行模式,当内核不需要继续运行时,可以选择后面三种低功耗模式。
2025-04-09 15:55:58
1555
原创 从0到1:STM32 RTC定时器配置全流程
独立于主系统时钟(即使MCU进入低功耗模式仍可运行)提供日历功能(年/月/日/时/分/秒/亚秒)支持闹钟中断和周期性唤醒由备用电池供电(VBAT引脚),主电源断开后仍可保持计时20位的可编程预分频器,可适配不同频率的输入时钟。可选择三种RTC时钟源:HSE时钟除以128(通常为8MHz/128)LSE振荡器时钟(通常为32.768KHz)LSI振荡器时钟(40KHz)
2025-04-08 15:43:03
1176
1
原创 解锁STM32F103C8T6新技能:BKP备份寄存器背后的惊人用途!
BKP(Backup Register)是STM32系列中一组特殊的寄存器,用于在系统掉电或重启时保存关键数据。掉电保持:通过VBAT引脚供电(需外接电池),数据在系统断电后仍能保留。独立时钟域:与RTC共用低速时钟(LSE/LSI),支持低功耗模式。侵入检测:可配置硬件触发事件清除BKP数据(防篡改)。10个16位备份寄存器(BKP_DR1 ~ BKP_DR10)1个侵入检测引脚(PC13)BKP框图。
2025-04-07 11:33:35
361
原创 基于STM32的智能门禁系统设计与实现
在物联网技术快速发展的今天,传统门锁正在向智能化方向演进。密码输入与验证(4x3矩阵键盘)用户信息存储管理(W25Q128 Flash)实时状态显示(0.96寸OLED)电磁锁控制(继电器+5V电磁锁)声光提示反馈(无源蜂鸣器)系统异常报警功能本文详细介绍了基于STM32F103C8T6的智能门禁系统设计方案。系统整合了多种常用外设模块,实现了完整的门禁控制功能。开发者可根据实际需求调整密码策略、存储容量等参数,具体实现代码可根据硬件连接关系进行适配开发。
2025-04-05 15:39:29
1265
原创 嵌入式入门必学:STM32矩阵键盘驱动从0到1实战指南
本方案可扩展至各类STM32系列芯片,通过修改GPIO定义即可适配不同封装型号。结合LCD显示模块可构建完整的人机交互系统,适用于工业控制器、智能仪表等场景。4x3矩阵键盘由12个按键组成,采用行(ROW)列(COL)交叉布局。通过行线输出扫描信号,列线检测输入状态,相比独立按键可节省7个IO口资源。完整工程代码可在Gitee获取:https://gitee.com/bad-lemon/mcu-development-record.git。
2025-04-04 12:13:31
472
原创 深入浅出SPI通信协议与STM32实战应用(W25Q128驱动)(实战部分)
W25Q128是Winbond推出的128M-bit(16MB)SPI接口Flash存储器,支持标准SPI、Dual-SPI和Quad-SPI模式。工作电压:2.7V~3.6V分页结构:256页/块,每块16KB,共1024块支持页编程(256字节/页)擦除操作支持:扇区擦除(4KB)、块擦除(32/64KB)、全片擦除最高104MHz时钟频率超过10万次擦写周期。
2025-04-02 11:46:43
1858
1
原创 深入浅出SPI通信协议与STM32实战应用(W25Q128驱动)(理论部分)
SPI(Serial Peripheral Interface)是电子设备间常用的同步串行通信协议,凭借其高速、全双工的特点,广泛应用于存储器、传感器等外设的通信。
2025-03-28 15:16:08
1056
原创 树莓派温湿度监测终极指南:DHT11+wiringPi驱动深度解析
本实验演示了树莓派与DHT11传感器的典型应用。虽然DHT11精度有限,但其低成本易用性使其成为入门级项目的理想选择。后续可尝试升级到DHT22传感器或使用Python版本实现更复杂的功能。参考资料:DHT11官方数据手册希望这篇博客能帮助您快速上手温湿度监测项目!如有疑问欢迎在评论区留言讨论。
2025-03-25 15:58:14
501
原创 基于树莓派3B+的人脸识别实践:Python与C联合开发
通过本文,您已经实现了树莓派上软硬件协同的人脸识别系统。未来可结合MQTT实现物联网控制,或移植到更复杂的边缘计算场景中。完整代码已托管至[GitHub仓库链接],欢迎Star与Fork!附录百度AI人脸识别文档libcamera官方指南wiringPi GPIO参考问题反馈:欢迎在评论区留言交流,或通过GitHub提交Issue。
2025-03-22 14:38:10
1046
原创 树莓派3B+使用CSI接口OV5647摄像头模块全攻略
树莓派作为一款经典的微型计算机,其强大的GPIO和丰富的扩展接口使其成为物联网和嵌入式开发的明星产品。在众多外设中,OV5647摄像头模块凭借其500万像素、支持1080P视频录制等特性,成为树莓派视觉项目的热门选择。本文将手把手教你如何在树莓派3B+上通过CSI接口连接OV5647摄像头,完成硬件配置、驱动启用、拍照录像,并实现Python控制。通过本文指导,您已成功在树莓派3B+上实现了OV5647摄像头的完整控制。
2025-03-22 12:22:50
1814
原创 深入Python C API:掌握常用函数与实战技巧
{NULL, NULL, 0, NULL} // 结束标记Python C API为开发者打开了连接C与Python世界的大门。通过合理使用PyArg_Parse系列函数、Py_BuildValue等工具,你可以轻松实现高性能扩展模块或深度集成现有C/C++代码。记住:谨慎管理引用计数、严格检查错误条件是写出健壮代码的关键。
2025-03-21 19:56:19
863
原创 MQTT协议详解:固定报头、可变报头与有效载荷
本文通过对MQTT协议的固定报头、可变报头以及有效载荷的详细解析,帮助读者深入理解MQTT的工作原理。在实际应用中,根据具体需求选择合适的报文类型和参数配置,可以实现高效的消息传输和物联网设备间的通信。
2025-03-18 15:30:17
946
原创 基于STM32F103+ESP8266的OneNet物联网数据上传实战
文章包含详细的代码实现和平台对接说明,实际开发时需根据硬件连接情况调整引脚定义。建议配合示波器调试时序问题,使用串口调试助手验证AT指令交互流程。我并没有使用CubeMx,我使用的HAL代码进行的初始化。大家可以获取我的模板资源。1. ESP8266无法连接WiFi。3.DHT11读取超时。2. 数据上传失败。
2025-03-18 14:40:30
1038
原创 用“快递系统“看懂Socket、TCP、HTTP的区别
如果把网络通信比作快递系统,Socket是快递员与客户交接的窗口,TCP是确保包裹必达的运输流程,HTTP则是包裹里标准化的文件格式。三者的关系就像快递柜、运输车队和文件模板的完美配合。
2025-03-16 15:53:40
260
原创 深入浅出TCP与UDP:三次握手、四次挥手及面试通关指南
:客户端(租客)与服务器(房东)建立信任关系SYN(同步请求)、ACK(确认应答)、Seq(序列号)
2025-03-16 15:28:30
835
原创 树莓派 3B/3B+/4B使用mjpg-streamer搭建摄像头实时流媒体服务
通过mjpg-streamer,你可以快速搭建一个低延迟的摄像头监控系统,适用于家庭安防、远程监控或物联网项目。结合树莓派GPIO,还可扩展运动检测等高级功能。 提示:优化性能时,建议关闭图形界面(sudo systemctl set-default multi-user.target)以节省资源。希望这篇教程能帮助你快速上手!如果有其他问题,欢迎在评论区留言讨论。
2025-03-16 13:17:15
1182
原创 STM32与HAL库开发实战:深入探索ESP8266的多种工作模式
通过HAL库直接操作STM32F103C8T6的UART外设,结合ESP8266的AT指令集,开发者可以灵活实现WiFi模块的多种工作模式。本方案避免了CubeMX的依赖,强调底层寄存器操作与协议解析能力,为物联网终端设备开发提供了高可靠性的通信基础。
2025-03-14 12:39:15
1540
原创 STM32 HAL库实战:轻松实现串口通信驱动蓝牙模块与ESP8266开发
本文通过详细的步骤介绍了如何在STM32F103C8T6上使用HAL库进行串口通信,并展示了如何通过串口驱动蓝牙模块(HC-08)和WiFi模块(ESP8266)。这些技术为实现无线通信功能提供了坚实的基础,适用于各种嵌入式系统应用。
2025-03-13 15:34:56
1125
原创 STM32 HAL库实战:高效整合DMA与ADC开发指南
通过DMA+ADC的高效整合,开发者可以实现低CPU占用率的模拟信号采集系统。合理配置ADC的扫描模式与DMA循环传输。利用HAL库的中断回调机制处理数据。通过硬件与软件优化提升信号质量。掌握这一技术后,可轻松应对传感器数据采集、工业控制等高实时性场景的需求。
2025-03-12 15:02:38
1247
原创 精通STM32 HAL库:打造Systick定时器,实现多线程操作系统
寄存器地址功能描述CTRL0xE000E010控制寄存器:使能计数器、中断、选择时钟源等。LOAD0xE000E014重装载值寄存器:设定计数器的初始值(最大值0xFFFFFF)。VAL0xE000E018当前值寄存器:读取当前计数值,写入任意值会清零计数器。CALIB0xE000E01C校准值寄存器:包含出厂预定义的校准值(STM32中通常无需手动配置)。关键位说明(CTRL寄存器):Bit 0:使能计数器(1=启动,0=关闭)
2025-03-11 14:27:47
1219
原创 DeepSeek本地部署指南:从零开始构建你的AI模型环境
在人工智能迅猛发展的今天,越来越多的开发者和研究者希望能够在本地环境中部署和运行AI模型,以便更好地控制数据隐私、提高模型响应速度以及进行定制化开发。本文将详细介绍如何在本地环境中部署DeepSeek模型,涵盖从工具下载到模型运行的完整流程。
2025-02-02 20:13:11
488
原创 01、硬件设计常用经典电路
一直想入职嵌入式软件,但是25年作为学历一般的应届生真是太难了,于是今年实习就不想跑太远了,就在老家5线小城市进入了一家小企业,当电子工程师实习(学徒)。抱着入职什么,就学习什么的态度,大家都要认真对待每一份工作。硬件开发为软件开发打硬件基础。本篇文章将介绍几种常见的经典电路。
2025-01-24 13:47:52
1493
原创 01-硬件入门学习/嵌入式教程-CH340C使用教程
CH340C是一款USB转TTL电平转换器,可以将电脑的USB数据转换成串口数据,方便与单片机(MCU)等设备进行通信。这款芯片支持3.3V和5V电源电压,功能齐全,是DIY设计和嵌入式开发中的常用组件。
2025-01-23 13:41:37
1730
原创 02-硬件入门学习/嵌入式教程-Type-C使用教程
Type-C是一种新型的USB接口标准,由USB Implementers Forum(USB IF)于2014年推出。它以其可逆插的设计、更高的数据传输速度和更强的电力传输能力而著称。Type-C接口不仅适用于智能手机、平板电脑等移动设备,也逐渐成为笔记本电脑和其他便携式设备的主流接口。
2025-01-23 13:19:15
464
原创 使用内网穿透工具,为树莓派配置公网地址实现远程ssh
在我们使用树莓派时,我们常使用ssh连接,但是每次连接都需要在局域网中才能连接,这并不是很方便。本文将介绍使用内网穿透工具,实现远程ssh;
2024-12-28 20:55:55
1009
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人