logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

【C++】list 容器操作

文章摘要:本文介绍了C++中list容器的特性与应用。list作为vector的补充,解决了vector在头部/中部插入删除效率低(O(N))和扩容代价大的问题,具有O(1)时间复杂度的插入删除优势,但牺牲了随机访问能力。文章详细讲解了list的四种迭代器(正向/反向/const/双向)、常用操作(头尾插删、任意位置操作)、排序方法(不推荐使用),以及迭代器失效问题和解决方案。最后通过对比vect

文章图片
#c++#开发语言#list
【C++11】auto关键字:自动类型推导

C++11中auto关键字被用于自动推导变量类型,简化复杂类型的声明。auto会根据初始化表达式自动匹配类型,但必须进行初始化。使用细则包括:结合指针和引用时auto*和auto无区别,引用需加&;同一行多个变量类型必须一致。auto不能用于函数参数、数组声明,且C++11仅保留其类型推导功能。auto常用于简化迭代器声明,配合新式for循环和lambda表达式使用,提升代码可读性。

文章图片
#c++#开发语言
【C++】C++11特性:范围for循环与指针空值nullptr详解

C++11引入了基于范围的for循环,简化了数组和容器的遍历操作。其语法使用冒号分隔迭代变量和迭代范围,自动处理范围边界,支持continue和break控制。使用条件要求迭代范围明确且对象支持++和==操作。对于指针空值,C++11推荐使用nullptr替代NULL,因为NULL可能被定义为0导致类型混淆,而nullptr能明确表示空指针,提高代码安全性和可读性。nullptr无需头文件,与vo

文章图片
#c++#开发语言
好用的开源日志库:Easylogger解析与移植STM32

Easylogger是一款轻量级嵌入式日志库,其核心配置位于elog_cfg.h文件中。主要配置包括:日志输出总开关(ELOG_OUTPUT_ENABLE)、静态日志级别(ELOG_OUTPUT_LVL)、断言检查(ELOG_ASSERT_ENABLE)、缓冲区大小(ELOG_LINE_BUF_SIZE)等。高级配置支持彩色输出、异步/缓冲模式、日志格式定制等功能。移植时需配置串口输出,重定义输出

#嵌入式
DS1302时钟芯片(基于STC89C52)

DS1302时钟芯片的数据读写、寄存器定义、引脚定义、时序图

文章图片
#嵌入式硬件#单片机#51单片机
好用的开源日志输出:SEGGER_RTT日志移植与应用指南

摘要:本文介绍了日志系统的基本组成(日志索引、断电日志存储区和主日志存储区)以及SEGGER RTT的移植与使用方法。详细说明了RTT库的下载步骤、文件提取和移植过程,包括初始化、测试用例和封装优化方法。同时提供了RTT虚拟终端的高级用法,如实现分流、改变输出颜色、重定向以及通过修改SEGGER_RTT_vprintf函数实现浮点数输出的解决方案。最后展示了封装后的日志输出效果和配置缓冲区大小的注

【DMA】FreeRTOS下STM32串口接收不定长数据并结合DMA实现环形缓冲区:2 串口DMA不定长接收代码实践

本文介绍了在FreeRTOS下使用STM32串口结合DMA实现环形缓冲区接收不定长数据的方法。系统采用分层设计:硬件中断层负责数据接收并存入环形缓冲区,BSP层驱动程序处理缓冲区管理并通知APP层,APP层进行数据解包处理。通过串口空闲中断、DMA半满和全满中断动态调整缓冲区head指针位置,实现高效数据接收。相比动态内存分配方案,环形缓冲区能避免内存碎片问题,保证系统实时性。文章还解答了环形缓冲

#stm32#单片机#嵌入式
【DMA】FreeRTOS下STM32串口接收不定长数据并结合DMA实现环形缓冲区:1 相关函数理论部分与环形缓冲区设计

本文介绍了STM32 HAL库中UART空闲中断与DMA结合的接收机制及环形缓冲区实现。主要内容包括:1) HAL_UARTEx_ReceiveToIdle_DMA函数的工作原理,详细分析了DMA半满中断、全满中断和串口空闲中断的触发条件与回调机制;2) 环形缓冲区的设计与实现,包括创建、判空判满、数据存取等操作;3) 通过串口空闲中断+DMA中断+环形缓冲区实现不定长数据接收的方案,阐述了中断处

#嵌入式#单片机#stm32
【AES加密】AES加密算法流程全解析

本文系统介绍了加密算法的基本概念与分类,重点解析了AES对称加密算法。内容涵盖:1.加密算法定义与分类(对称/非对称);2.对称加密典型算法DES和AES的工作原理及优劣势;3.AES的具体实现,包括128/192/256位密钥的差异、加密轮次、分组处理流程(密钥扩展、初始轮、主轮操作等);4.非对称加密原理及与对称加密的对比;5.混合加密方案的应用场景。文章通过数学示例(RSA算法)和信箱类比,

#嵌入式#密码学#算法 +1
Bootloader核心原理与简单实现:从零写一个bootloader

Bootloader是单片机系统中用于简化固件更新、分离应用逻辑和增强安全性的关键组件。本文介绍了开发一个最简单的Bootloader的步骤:1)配置Flash布局,划分Bootloader区和应用区;2)在Bootloader工程中实现跳转函数,包括验证应用有效性、设置栈指针和跳转地址;3)在应用工程中正确配置中断向量表偏移。核心原理是通过Bootloader初始化后跳转到应用复位向量,同时需注

文章图片
#单片机#嵌入式
    共 45 条
  • 1
  • 2
  • 3
  • 4
  • 5
  • 请选择