- 博客(123)
- 收藏
- 关注
原创 为什么嵌入式开发离不开Linux
随着嵌入式系统技术的快速发展,对功能强大、成本低廉而又灵活适配的操作系统需求逐渐增大。Linux凭借上述特性,成为嵌入式系统中最主要的操作系统之一。这种结合催生了一个重要的术语:嵌入式Linux。
2025-01-20 12:42:15
1058
原创 从C到C++:嵌入式开发中两者的差异与过渡技巧
嵌入式开发广泛应用于消费电子、工业自动化、医疗设备、汽车电子、物联网等领域。在这类开发任务中,语言的选择直接影响了系统的性能、生产力以及软件的维护效率。 C语言 和 C++ 是被嵌入式开发者最普遍使用的编程语言。
2025-01-19 12:30:42
831
原创 嵌入式代码在芯片上的运行解析
嵌入式系统是一种具有特定功能的计算机系统,通常集成在更大的设备中。其特点包括高实时性、小体积低功耗、专用性强。其中,如微控制器(MCU)和微处理器(MPU)是常见组件。了解嵌入式代码如何在芯片上运行,有助于开发出更加高效和可靠的嵌入式系统。本文将详细探讨嵌入式代码是如何开发、加载以及在芯片上运行的。
2025-01-19 10:50:28
1141
原创 嵌入式开发中的电源管理与优化技术
无论是在物联网设备、移动设备,还是工业控制系统中,电源管理都直接关系到设备的性能和使用寿命。由于嵌入式系统通常运行在电池供电或其他受限的能源环境中,有效的电源管理不仅可以延长电池寿命,还能提高系统的可靠性和稳定性。
2024-08-20 01:47:46
1852
原创 代码重构在嵌入式开发中的操作方法
在嵌入式系统开发中,代码重构通常是一个重要的过程。与其他软件开发领域一样,嵌入式开发也需要代码重构来提高代码的可维护性、可读性和效率。然而,嵌入式系统的独特性(如资源受限、实时性要求、硬件依赖等)使得重构过程更加复杂和关键。
2024-08-14 17:21:17
987
原创 嵌入式系统中的中断的使用和处理机制
在嵌入式系统中,中断处理机制是确保系统实时响应外部事件的关键技术之一。嵌入式系统通常运行在资源受限的环境中,这意味着需要高效、快速地响应外部输入,如传感器数据、用户按键、通信接口信号等。中断处理使得处理器能够在执行主要任务的同时,及时响应这些外部事件,从而提高系统的实时性和可靠性。
2024-08-14 05:26:45
1830
原创 C++的内存管理是怎样的?
C++的内存管理是一个非常重要的概念,它涉及到如何分配和释放程序运行时所需的内存。相比于现代一些拥有自动垃圾回收机制的编程语言,C++给予了开发者更多的控制权。掌握内存管理的技巧,不仅可以提升程序的性能,还能避免一些常见的错误,如内存泄漏和悬空指针。
2024-08-13 23:39:11
756
原创 树莓派新版本在interface options中找不到camera选项
自2023.10之后的新版本中,树莓派去除了原先使用的picamera库,所以不能通过interface options这里来打开camera. 所以之前的摄像头的教程就没法参考了,如果想使用之前的教程就必须下载之前的版本镜像文件。
2024-08-06 19:19:19
2043
4
原创 面向对象编程中的类 & 对象关系
C++在C语言的基础上增加了面向对象编程,C++支持面向对象程序设计。类是C++的核心特性,通常被称为用户定义的类型。类用于指定对象的形式,是一种用户自定义的数据类型,它是一种封装了数据和函数的组合。类中的数据称为成员变量,函数称为成员函数。类可以被看作是一种模板,可以用来创建具有相同属性和行为的多个对象。
2024-07-29 15:59:16
1153
原创 C++面向对象编程的设计原则
C++ 是在 C 语言的基础上增加了面向对象编程(OOP)特性的编程语言。面向对象编程是一种编程范式,通过将程序组织成对象的集合,这些对象包含数据和行为,从而提高代码的可重用性、可维护性和可扩展性。
2024-07-29 15:56:56
1239
原创 C++ 中如何定义和操作数据结构体
C/C++ 数组允许定义可存储相同类型数据项的变量,但是结构是 C++ 中另一种用户自定义的可用的数据类型,它允许存储不同类型的数据项。
2024-07-28 17:22:14
603
原创 各类指针的使用与技巧(C++)
通过指针,可以简化一些C++编程任务的执行,还有一些任务,如动态内存分配,没有指针是无法执行的。每一个变量都有一个内存位置,每一个内存位置都定义了可使用连字号(&)运算符访问的地址,它表示了在内存中的一个地址。
2024-07-28 17:17:57
1403
原创 如何对C++ 中函数进行定义和参数调用
函数是一组一起执行一个任务的语句。每个C++程序都至少有一个函数,即主函数main(),所有简单的程序都可以定义其他额外的函数。可以把代码划分到不同的函数中。但在逻辑上,划分通常是根据每个函数执行一个特定的任务来进行的。
2024-07-26 20:50:34
1765
原创 C++如何使用基础判断和嵌套语句
判断结构要求指定一个或多个要评估或测试的条件,以及条件为真时要执行的语句(必需的)和条件为假时要执行的语句(可选的)。
2024-07-25 16:49:46
1271
原创 C++循环结构详解:深入理解各类循环与控制语句
有的时候,可能需要多次执行同一块代码。一般情况下,语句是顺序执行的:函数中的第一个语句先执行,接着是第二个语句,依此类推。循环语句允许我们多次执行一个语句或语句组。
2024-07-25 06:02:00
1389
原创 深入解析C++中的变量作用域与类型管理
在C++中,有多种变量类型可用于存储不同种类的数据。C++中每个变量都有指定的类型,类型决定了变量存储的大小和布局,该范围内的值都可以存储在内存中,运算符可应用于变量上。
2024-07-23 14:28:01
934
原创 全面理解C++数据类型:变量、类型声明与类型转换
使用编程语言进行编程时,需要用到各种变量来存储各种信息。变量保留的是它所存储的值的内存位置。这意味着,当你创建一个变量时,就会在内存中保留一些空间。可能需要存储各种数据类型(比如字符型、宽字符型、整型、浮点型、双浮点型、布尔型等)的信息,操作系统会根据变量的数据类型,来分配内存和决定在保留内存中存储什么。
2024-07-23 05:48:48
1415
原创 基本C++语法与程序结构解析
C++ 是一种静态类型的、编译式的、通用的、大小写敏感的、不规则的编程语言,支持过程化编程、面向对象编程和泛型编程,它综合了高级语言和低级语言的特点,它是 C 的一个超集,事实上,任何合法的 C 程序都是合法的 C++ 程序。
2024-07-22 16:39:15
941
原创 C++ 关键字完整介绍
C++ 关键字是编程语言保留的单词,这些单词具有特定的含义,并在编译过程中被编译器识别和处理。由于关键字有特殊的用途,因此不能将它们用作标识符(变量名、函数名、类名等)。
2024-07-22 16:32:34
4194
原创 gcc编译过程以及命令格式
GCC(GNU Compiler Collection)编译器是一个强大的编译工具链,能够将C/C++源代码转换为可执行的机器码。编译过程分为四个主要步骤:预处理(preprocessing)、编译(compilation)、汇编(assembly)和链接(linking)。
2024-07-16 06:12:23
1552
原创 STM32使用CubeMX创建HAL库工程文件
STM32CubeMX是STMicroelectronics(意法半导体)为其STM32系列微控制器提供的图形化配置工具。它旨在简化和加速嵌入式系统的开发过程。通过STM32CubeMX,开发者可以方便地配置微控制器的硬件资源,并生成初始化代码,从而减少手动编写代码的复杂性和可能的错误。
2024-07-15 06:38:47
2487
3
原创 STM32创建HAL库工程文件
HAL库(Hardware Abstraction Layer)是STMicroelectronics提供的STM32微控制器的硬件抽象层库。它通过一套统一的API接口,简化了对STM32外设的配置和操作,使开发者能够更快速地进行嵌入式系统开发,而不必深入了解底层硬件细节。
2024-07-15 06:38:00
1411
原创 如何使用GCC交叉编译器:工具链、验证与平台支持
交叉编译是指在一种计算机体系结构上生成在另一种计算机体系结构上运行的可执行代码的过程。具体来说,我们在PC机上编译程序,这些程序是为了在另一种架构(例如ARM)上运行的。
2024-07-14 07:04:59
2030
原创 汇编程序调用 C 程序详解
在嵌入式开发中,经常需要在 C 程序和 ARM 汇编程序之间进行相互调用。为了保证这些调用的正确性和兼容性,ARM 提出了 ATPCS(ARM-Thumb Procedure Call Standard)规范。该规范定义了函数调用时的基本规则和寄存器使用约定。
2024-07-14 07:04:09
1230
原创 嵌入式系统启动代码和外设代码的汇编过程
start.S 通常是指用于嵌入式系统启动代码的汇编文件。这个文件负责在嵌入式系统上电或重置时的初始设置和引导过程。
2024-07-13 06:53:52
959
1
原创 数据结构——排序算法(冒泡、快速、选择、插入)
排序(Sort)是将无序的记录序列(或称文件)调整成有序的序列。排序算法在计算机科学中非常重要,因为它们可以提高数据检索效率、简化后续算法的复杂性和优化存储结构等。
2024-07-13 06:53:26
1691
原创 数据结构中的查找算法详解:顺序查找与二分查找
查找算法是用于在数据集中定位特定元素的位置的算法。查找是计算机科学中一项基本操作,几乎在所有应用程序中都需要使用。例如,数据库查询、信息检索、字典查找等都涉及到查找操作。查找算法可以根据不同的需求和数据结构选择不同的实现方法,以达到高效、准确的目的。
2024-07-12 06:47:13
1734
原创 数据结构中如何对算法进行定义、评估与复杂度分析
算法是一组有限的、明确的步骤或指令,用于解决特定问题。这些步骤必须是计算机可以执行的操作。通俗地理解,算法就是解决特定问题的方法。
2024-07-12 06:46:53
1107
原创 深入解析二叉树:结构、分类与遍历方法
二叉树(Binary Tree) 是每个节点最多有两个子节点的树结构。这两个子节点分别称为左子节点和右子节点。二叉树与普通树不同,二叉树的每个节点的子树分为左子树和右子树,即使只有一个子节点,也需要区分是左子节点还是右子节点。
2024-07-11 06:47:55
2367
原创 队列数据结构中的存储结构、操作与函数实现
队列(Queue)是操作受限的线性表。它限制为仅允许在表的一端进行插入操作(入队或进队),在表的另一端进行删除操作(出队或离队)。队列是具有先进先出(FIFO,First In First Out)特点的线性结构,类似于生活中的排队现象。
2024-07-11 06:47:23
1280
原创 栈在数据结构中的原理、存储结构与函数功能
栈 (stack) 是一种限制在表的一端进行插入和删除操作的线性表。插入和删除操作只能在栈顶(top)进行,遵循“后进先出” (LIFO, Last In First Out) 或“先进后出” (FILO, First In Last Out) 的原则。这种特性使得栈在某些场景中非常有用,如处理递归调用、表达式求值、深度优先搜索等。
2024-07-10 06:31:56
1290
原创 数据结构中双向循环链表的基本操作
双向循环链表是一种链表数据结构,其中每个节点包含指向前一个节点和下一个节点的指针。与普通双向链表不同,双向循环链表的最后一个节点的后继指针指向头节点,第一个节点的前驱指针指向尾节点,形成一个环。
2024-07-10 06:31:18
934
原创 大/小端模式与位操作
大小端模式(Endianness)是指计算机系统中多字节数据的存储方式。不同的计算机系统可能采用不同的大小端模式来存储数据,这会影响到数据在内存中的排列顺序。
2024-07-09 06:52:22
1762
STM32基于DMA数据转运和AD多通道
2024-05-21
STM32通过ADC多通道检测数据
2024-05-07
STM32通过ADC单通道检测数据
2024-05-07
STM32通过编码器接口测速
2024-05-07
基于STM32通过PWM驱动直流电机
2024-04-28
STM32使用PWM驱动舵机并通过OLED显示
2024-04-28
基于STM32的定时器内部(外部)时钟中断代码
2024-04-28
基于STM32单片机使用中断实现旋转编码器计次
2024-04-26
基于STM32的OLED驱动函数和工程文件模板(四针脚和七阵脚)
2024-04-25
STM32标准库工程模板(已配置好打开即用)
2024-04-23
单片机调试和下载工具软件
2024-04-22
HC-06模块连接电脑
2024-04-16
TA创建的收藏夹 TA关注的收藏夹
TA关注的人