自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(119)
  • 收藏
  • 关注

原创 嵌入式开发中的电源管理与优化技术

无论是在物联网设备、移动设备,还是工业控制系统中,电源管理都直接关系到设备的性能和使用寿命。由于嵌入式系统通常运行在电池供电或其他受限的能源环境中,有效的电源管理不仅可以延长电池寿命,还能提高系统的可靠性和稳定性。

2024-08-20 01:47:46 889

原创 代码重构在嵌入式开发中的操作方法

在嵌入式系统开发中,代码重构通常是一个重要的过程。与其他软件开发领域一样,嵌入式开发也需要代码重构来提高代码的可维护性、可读性和效率。然而,嵌入式系统的独特性(如资源受限、实时性要求、硬件依赖等)使得重构过程更加复杂和关键。

2024-08-14 17:21:17 710

原创 嵌入式系统中的中断的使用和处理机制

在嵌入式系统中,中断处理机制是确保系统实时响应外部事件的关键技术之一。嵌入式系统通常运行在资源受限的环境中,这意味着需要高效、快速地响应外部输入,如传感器数据、用户按键、通信接口信号等。中断处理使得处理器能够在执行主要任务的同时,及时响应这些外部事件,从而提高系统的实时性和可靠性。

2024-08-14 05:26:45 887

原创 C++的内存管理是怎样的?

C++的内存管理是一个非常重要的概念,它涉及到如何分配和释放程序运行时所需的内存。相比于现代一些拥有自动垃圾回收机制的编程语言,C++给予了开发者更多的控制权。掌握内存管理的技巧,不仅可以提升程序的性能,还能避免一些常见的错误,如内存泄漏和悬空指针。

2024-08-13 23:39:11 658

原创 树莓派新版本在interface options中找不到camera选项

自2023.10之后的新版本中,树莓派去除了原先使用的picamera库,所以不能通过interface options这里来打开camera. 所以之前的摄像头的教程就没法参考了,如果想使用之前的教程就必须下载之前的版本镜像文件。

2024-08-06 19:19:19 502

原创 面向对象编程中的类 & 对象关系

C++ 在 C 语言的基础上增加了面向对象编程,C++ 支持面向对象程序设计。类是 C++ 的核心特性,通常被称为用户定义的类型。类用于指定对象的形式,是一种用户自定义的数据类型,它是一种封装了数据和函数的组合。类中的数据称为成员变量,函数称为成员函数。类可以被看作是一种模板,可以用来创建具有相同属性和行为的多个对象。

2024-07-29 15:59:16 1036

原创 C++面向对象编程的设计原则

C++ 是在 C 语言的基础上增加了面向对象编程(OOP)特性的编程语言。面向对象编程是一种编程范式,通过将程序组织成对象的集合,这些对象包含数据和行为,从而提高代码的可重用性、可维护性和可扩展性。

2024-07-29 15:56:56 1070

原创 C++ 中如何定义和操作数据结构体

C/C++ 数组允许定义可存储相同类型数据项的变量,但是结构是 C++ 中另一种用户自定义的可用的数据类型,它允许存储不同类型的数据项。

2024-07-28 17:22:14 361

原创 各类指针的使用与技巧(C++)

通过指针,可以简化一些 C++ 编程任务的执行,还有一些任务,如动态内存分配,没有指针是无法执行的。每一个变量都有一个内存位置,每一个内存位置都定义了可使用连字号(&)运算符访问的地址,它表示了在内存中的一个地址。

2024-07-28 17:17:57 680

原创 C++中的数字与数组:从定义到多维处理

C++ 数字和数组解析

2024-07-27 07:05:01 610

原创 如何对C++ 中函数进行定义和参数调用

函数是一组一起执行一个任务的语句。每个 C++ 程序都至少有一个函数,即主函数main(),所有简单的程序都可以定义其他额外的函数。可以把代码划分到不同的函数中。但在逻辑上,划分通常是根据每个函数执行一个特定的任务来进行的。

2024-07-26 20:50:34 943

原创 C++如何使用基础判断和嵌套语句

判断结构要求指定一个或多个要评估或测试的条件,以及条件为真时要执行的语句(必需的)和条件为假时要执行的语句(可选的)。

2024-07-25 16:49:46 1119

原创 C++循环结构详解:深入理解各类循环与控制语句

有的时候,可能需要多次执行同一块代码。一般情况下,语句是顺序执行的:函数中的第一个语句先执行,接着是第二个语句,依此类推。循环语句允许我们多次执行一个语句或语句组。

2024-07-25 06:02:00 831

原创 C++运算符类型的使用与优先级详解

运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。

2024-07-24 16:41:14 714

原创 对于C++常量与字符的定义、修饰与使用

常量是固定值,在程序执行期间不会改变。这些固定的值,又叫做字面量。常量可以是任何的基本数据类型,可分为整型数字、浮点数字、字符、字符串和布尔值。常量就像是常规的变量,只不过常量的值在定义后不能进行修改。

2024-07-24 06:20:46 614

原创 深入解析C++中的变量作用域与类型管理

在 C++ 中,有多种变量类型可用于存储不同种类的数据。C++ 中每个变量都有指定的类型,类型决定了变量存储的大小和布局,该范围内的值都可以存储在内存中,运算符可应用于变量上。

2024-07-23 14:28:01 818

原创 全面理解C++数据类型:变量、类型声明与类型转换

使用编程语言进行编程时,需要用到各种变量来存储各种信息。变量保留的是它所存储的值的内存位置。这意味着,当你创建一个变量时,就会在内存中保留一些空间。可能需要存储各种数据类型(比如字符型、宽字符型、整型、浮点型、双浮点型、布尔型等)的信息,操作系统会根据变量的数据类型,来分配内存和决定在保留内存中存储什么。

2024-07-23 05:48:48 1349

原创 基本C++语法与程序结构解析

C++ 是一种静态类型的、编译式的、通用的、大小写敏感的、不规则的编程语言,支持过程化编程、面向对象编程和泛型编程,它综合了高级语言和低级语言的特点,它是 C 的一个超集,事实上,任何合法的 C 程序都是合法的 C++ 程序。

2024-07-22 16:39:15 799

原创 C++ 关键字完整介绍

C++ 关键字是编程语言保留的单词,这些单词具有特定的含义,并在编译过程中被编译器识别和处理。由于关键字有特殊的用途,因此不能将它们用作标识符(变量名、函数名、类名等)。

2024-07-22 16:32:34 1206

原创 在项目中为什么要使用Makefile

Makefile 是 make 的配置文件,定义了如何编译和链接程序的规则和依赖关系。

2024-07-17 06:13:42 1278

原创 GCC链接静态库和动态库详解

GCC链接静态库和动态库详解

2024-07-17 06:10:07 911

原创 gcc命令以及GDB调试选项

gcc命令以及GDB调试选项

2024-07-16 06:13:03 757

原创 gcc编译过程以及命令格式

GCC(GNU Compiler Collection)编译器是一个强大的编译工具链,能够将C/C++源代码转换为可执行的机器码。编译过程分为四个主要步骤:预处理(preprocessing)、编译(compilation)、汇编(assembly)和链接(linking)。

2024-07-16 06:12:23 1225

原创 STM32使用CubeMX创建HAL库工程文件

STM32CubeMX是STMicroelectronics(意法半导体)为其STM32系列微控制器提供的图形化配置工具。它旨在简化和加速嵌入式系统的开发过程。通过STM32CubeMX,开发者可以方便地配置微控制器的硬件资源,并生成初始化代码,从而减少手动编写代码的复杂性和可能的错误。

2024-07-15 06:38:47 1585 1

原创 STM32创建HAL库工程文件

HAL库(Hardware Abstraction Layer)是STMicroelectronics提供的STM32微控制器的硬件抽象层库。它通过一套统一的API接口,简化了对STM32外设的配置和操作,使开发者能够更快速地进行嵌入式系统开发,而不必深入了解底层硬件细节。

2024-07-15 06:38:00 1016

原创 如何使用GCC交叉编译器:工具链、验证与平台支持

交叉编译是指在一种计算机体系结构上生成在另一种计算机体系结构上运行的可执行代码的过程。具体来说,我们在PC机上编译程序,这些程序是为了在另一种架构(例如ARM)上运行的。

2024-07-14 07:04:59 1008

原创 汇编程序调用 C 程序详解

在嵌入式开发中,经常需要在 C 程序和 ARM 汇编程序之间进行相互调用。为了保证这些调用的正确性和兼容性,ARM 提出了 ATPCS(ARM-Thumb Procedure Call Standard)规范。该规范定义了函数调用时的基本规则和寄存器使用约定。

2024-07-14 07:04:09 1032

原创 嵌入式系统启动代码和外设代码的汇编过程

start.S 通常是指用于嵌入式系统启动代码的汇编文件。这个文件负责在嵌入式系统上电或重置时的初始设置和引导过程。

2024-07-13 06:53:52 804

原创 数据结构——排序算法(冒泡、快速、选择、插入)

排序(Sort)是将无序的记录序列(或称文件)调整成有序的序列。排序算法在计算机科学中非常重要,因为它们可以提高数据检索效率、简化后续算法的复杂性和优化存储结构等。

2024-07-13 06:53:26 1604

原创 数据结构中的查找算法详解:顺序查找与二分查找

查找算法是用于在数据集中定位特定元素的位置的算法。查找是计算机科学中一项基本操作,几乎在所有应用程序中都需要使用。例如,数据库查询、信息检索、字典查找等都涉及到查找操作。查找算法可以根据不同的需求和数据结构选择不同的实现方法,以达到高效、准确的目的。

2024-07-12 06:47:13 1241

原创 数据结构中如何对算法进行定义、评估与复杂度分析

算法是一组有限的、明确的步骤或指令,用于解决特定问题。这些步骤必须是计算机可以执行的操作。通俗地理解,算法就是解决特定问题的方法。

2024-07-12 06:46:53 880

原创 深入解析二叉树:结构、分类与遍历方法

二叉树(Binary Tree) 是每个节点最多有两个子节点的树结构。这两个子节点分别称为左子节点和右子节点。二叉树与普通树不同,二叉树的每个节点的子树分为左子树和右子树,即使只有一个子节点,也需要区分是左子节点还是右子节点。

2024-07-11 06:47:55 2258

原创 队列数据结构中的存储结构、操作与函数实现

队列(Queue)是操作受限的线性表。它限制为仅允许在表的一端进行插入操作(入队或进队),在表的另一端进行删除操作(出队或离队)。队列是具有先进先出(FIFO,First In First Out)特点的线性结构,类似于生活中的排队现象。

2024-07-11 06:47:23 1232

原创 栈在数据结构中的原理、存储结构与函数功能

栈 (stack) 是一种限制在表的一端进行插入和删除操作的线性表。插入和删除操作只能在栈顶(top)进行,遵循“后进先出” (LIFO, Last In First Out) 或“先进后出” (FILO, First In Last Out) 的原则。这种特性使得栈在某些场景中非常有用,如处理递归调用、表达式求值、深度优先搜索等。

2024-07-10 06:31:56 1206

原创 数据结构中双向循环链表的基本操作

双向循环链表是一种链表数据结构,其中每个节点包含指向前一个节点和下一个节点的指针。与普通双向链表不同,双向循环链表的最后一个节点的后继指针指向头节点,第一个节点的前驱指针指向尾节点,形成一个环。

2024-07-10 06:31:18 819

原创 大/小端模式与位操作

大小端模式(Endianness)是指计算机系统中多字节数据的存储方式。不同的计算机系统可能采用不同的大小端模式来存储数据,这会影响到数据在内存中的排列顺序。

2024-07-09 06:52:22 1247

原创 进制的概念以及进制转换和计算

计算机对数据的表示方式有多种进制,包括十六进制、十进制、八进制和二进制。

2024-07-09 06:51:50 845

原创 ARM汇编与机器码、汇编指令

ARM芯片属于精简指令集计算机(RISC)

2024-07-08 07:02:39 1221

原创 ARM架构以及程序运行解析

ARM架构(Advanced RISC Machines)是目前最为广泛使用的微处理器架构之一,广泛应用于移动设备、嵌入式系统、物联网设备等领域。

2024-07-08 05:17:08 1041

原创 CISC和RISC指令集

指令集(Instruction Set)是计算机处理器(CPU)能够识别和执行的所有指令的集合。它是计算机体系结构的一个关键组成部分,定义了处理器如何执行软件指令,并与计算机硬件进行交互。指令集包括各种操作码(Opcode),每个操作码对应一种特定的操作,如数据传输、算术运算、逻辑运算、控制流等。

2024-07-08 05:14:56 967

STM32基于DMA数据转运和AD多通道

工程代码基于STM32F103C8T6,两个代码分别为:DMA数据转运和采用ADC扫描模式+DMA数据转运,效果为ADC触发后一直在工作,始终把最新结果给SRAM数组。

2024-05-21

STM32通过ADC多通道检测数据

工程代码基于STM32F103C8T6,通过ADC多通道检测4个数据,使用一个电位器产生0-3.3v连续变化的模拟电压信号,和三个传感器:光敏电阻模块,热敏电阻模块,红外反射模块。之后用stm32的adc读取数据,并且通过oled屏幕显示4个数据。

2024-05-07

STM32通过ADC单通道检测数据

工程代码基于STM32F103C8T6,通过ADC单通道检测数据,使用一个电位器产生0-3.3v连续变化的模拟电压信号,之后用stm32的adc读取电压数据,并且通过oled屏幕显示。

2024-05-07

STM32通过编码器接口测速

工程代码基于STM32F103C8T6,通过编码器接口测速,转动编码器时OLED会实时显示数据,并且通过OLED显示屏进行显示 使用到的硬件:STM32F103C8T6最小系统板,四针脚OLED显示屏,旋转编码器

2024-05-07

STM32通过PWMI模式测频率占空比

工程代码基于STM32F103C8T6,通过PWMI得到时钟频率和占空比,并且通过oled屏幕显示。

2024-05-07

基于STM32通过PWM驱动直流电机

工程代码基于STM32F103C8T6,使用PWM输出驱动电机,电机驱动使用TB6612,通过按键控制电机速度,并且速度通过OLED显示屏进行显示 使用到的硬件:STM32F103C8T6最小系统板,四针脚OLED显示屏,直流电机,按键,TB6612电机驱动模块

2024-04-28

STM32使用PWM驱动舵机并通过OLED显示

工程代码基于STM32F103C8T6,使用PWM输出驱动舵机,舵机型号为SG90,通过按键控制舵机角度,并且角度通过OLED显示屏进行显示。

2024-04-28

基于STM32的定时器内部(外部)时钟中断代码

基于STM32的定时器时钟中断代码,包括两个文件,一个是定时器使用内部时钟计时,一个是定时器外部时钟中断实现计数。单片机型号为STM32F103C8T6.

2024-04-28

基于STM32单片机使用中断实现旋转编码器计次

基于STM32单片机,使用标准库中断功能实现旋转编码器计次,文件包括完整工程文件,打开即用,功能包括旋转编码器完成计数,并通过OLED显示屏显示数值。

2024-04-26

基于STM32的OLED驱动函数和工程文件模板(四针脚和七阵脚)

基于STM32的OLED驱动函数和工程文件模板,有四针脚版本和七针脚版本,其中包括使用标准库编写的OLED驱动函数,以及整个工程文件模板,下载烧录即可使用。

2024-04-25

STM32标准库工程模板(已配置好打开即用)

基于keil的STM32标准库工程模板,默认芯片选择为F103C8T6, 基础环境和标准库文件已经配置好,用keil打开后即可使用。

2024-04-23

单片机调试和下载工具软件

资源中包括以下工具软件: 1. FlyMcu编程烧录软件 - 用于单片机编程下载和烧录微控制器的软件。 2. STLINK Utility - STLINK是STMicroelectronics的调试和编程工具,这个软件用于与STLINK调试器一起使用,可以对ST的微控制器进行编程和调试。 3. STLINK驱动 - STLINK调试器的驱动程序,需要安装这个驱动,计算机才能识别并与STLINK调试器通信。 4. UltraCodingSwitch - 超级批量编码转换工具 5. USB转串口CH340驱动 - CH340是一种常见的USB转串口芯片,这个驱动让计算机能够通过USB接口与使用CH340芯片的设备进行串行通信。 5. 串口助手软件 - 可以发送和接收串口数据,用于调试和测试硬件设备的串口通讯功能。

2024-04-22

机器人工具箱四自由度的机械臂轨迹规划

使用matlab机器人工具箱实现四自由度的机械臂轨迹规划

2024-04-12

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除