自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 ARM嵌入式系统核心知识点

寄存器 > Cache > RAM > ROM / 闪存;掉电不丢数据的是:ROM、闪存哈佛结构(数据 / 指令分开存,速度快)满减栈(满栈 + 减栈)专用寄存器核心考点:PC 指向下下条指令、LR 存函数返回地址、SP 指向栈顶、SPSR 是 CPSR 的备份Cache 提效率、MMU 做虚拟 / 物理地址映射电源 + 时钟让 ARM 跑起来,CPU 用寄存器和 Cache 快速算数据,RAM 存临时数据,Flash 存永久程序,外设和外界交互;

2026-03-19 21:13:50 330

原创 UART、Modbus协议

UART(Universal Async Receiver Transmitter)通用异步收发器,是全双工、串行、异步的通信接口,核心通过两根独立信号线实现数据的双向同时传输,无专用时钟线,依靠波特率实现通信双方的速率同步。

2026-03-18 20:32:42 352

原创 51单片机【数码管动态显示,外部中断0,定时器0,蜂鸣器】

中断概念:当CPU在执行一个任务时,此时外界来了一个更为紧急的任务,要求CPU 能够暂停当前的任务,转而去执行更为紧急的任务,执行完之后再回到刚才被打断的 地方继续向下执行。因为变量的地址是随机的,变量存放在RAM中,CPU要访问RAM中的变量来进行指令操作,所以说RAM对于CPU来说是随机访问内存。38译码器(3→8Decoder)的工作原理:用3根输入线(A、B、C)的二进制组合,选通8个输出中的某一个。中断优先级:CPU处理中断任务时,需要比较中断优先级,优先去处理优先级更高的 中断请求。

2026-03-17 20:03:10 342

原创 网络编程基础知识(UDP、TCP)、多路IO、HTTP、数据库sqlite3

用来“定义数据库对象结构”,比如建库、建表、改表结构、删表。

2026-03-14 22:39:26 352

原创 线程、互斥锁、信号量、进程间通信(有名管道、无名管道)

概念:线程是轻量级进程,一般是一个进程中的多个任务(不同线程)。​ 进程是系统中最小的资源分配单位.(CPU+mem)​ 线程是系统中最小的执行单位。(执行具体代码)线程与进程的共同点:并发。进程、线程的不同点* 线程,数据共享, 对应的栈区是私有 ,进程,用户空间的内存,都是私用的。* 线程(小)属于某一个进程(大), 从属关系。* 进程创建的开销大(0~3G),线程只需要开辟对应的栈(8M)空间,其他区域共享进程的* 进程适合需要大量资源的复杂任务, 不需要大的资源的任务,线程完成。

2026-03-14 22:23:24 337

原创 环链表、栈、队列的相关算法及实现

栈和队列本质上都是线性表(元素间一对一的线性关系),但属于受限的线性表栈(Stack):仅允许在表尾(栈顶)进行插入 / 删除,遵循「后进先出(LIFO)」;队列(Queue):仅允许在表尾(队尾)插入、表头(队头)删除,遵循「先进先出(FIFO)」。两者都有顺序存储(数组)和链式存储(链表)两种实现方式。普通顺序队列存在 “假溢出”(队尾满但队头有空),因此循环队列是顺序队列的最优实现;链式队列无需循环,核心是 “队头删、队尾插”。1.栈:顺序栈快但容量固定,链式栈灵活但略占空间,核心操作都在。

2026-02-07 09:09:24 685

原创 双向链表相关算法实现

双向链表如下图所示:可以用结构体表示:双向链表的相关实现算法:如果要测试 头插 或 尾插 的效果,那就再来个打印函数。在main.c中调用,测试:测试:

2026-02-04 22:17:49 147

原创 初识Makefile

makefile 是个文件,这个文件中描述了程序的编译规则执行 make 命令的时候,make 命令会在当前目录下找 makefile 文件, 根据 makefile 文件里的规则,编译 程序Makefile规则文件是 程序员根据自己的程序,编写的编译规则1、GNU make 是一种代码维护工具2、make 工具会根据 makefile 文件定义的规则和步骤,完成整个软件项目的代码维护工作。3、一般用来简化编译工作,可以极大地提高软件开发的效率。4、windows下一般由集成开发环境自动生成。

2026-02-04 20:39:29 982

原创 单向链表的选择排序,冒泡排序,插入排序

用链表来写选择排序,需要一个指针表示位置,还需要一个移动的指针遍历链表,把链表中的每个数和位置上的数比较。比如,在首节点这个位置的时候,就需要从第二个节点开始把值与首节点的值比较,然后遍历链表,比较出最小的值放在首节点这个位置。首节点位置的值确定好了,就把位置往后移动,移到第二个节点的位置。再一次与位置后面的所有数都比较,比较出最小值放在第二个节点位置,以此类推。只需要将位置移动到倒数第二个位置,就可以确定所有数的位置了。

2026-02-03 22:42:21 247

原创 数据结构——单向链表学习

数据是数据元素的集合,那么根据物理结构的定义,实际上就是如何把数据元素存储到计算机的存储器中。"这样的代码,不需 要任何输入参数,因此算法的输入可以是零个。数据的存储结构应正确反映数据元素之间的逻辑关系,这才是最为关键的,如何存储数据元素之间的逻辑关系,是实现物理结构的重点和难点。数据:是描述客观事物的符号,是计算机中可以操作的对象, 是能被计算机识别, 并输入给计算机处理的符号集合。链式存储结构:是把数据元素存放在任意的存储单元里,这组存储单元可以是连续的,也可以是不 连续的。

2026-02-02 22:33:05 731

原创 day12 指针初识

所以,我们常说“1的十六进制表示为0x00000001”,实际上是指:用十六进制来表示这个32位整数的值,就是0x00000001。//表示的是 指针 指向的 目标空间中 存放的数据的 类型。p + q ,p / q ,p * q//不能做这样的运算 --- 计算不出什么实际含义。// 定义时 * 修饰变量名 表明定义的是一个 指针类型的变量。// int * //指针类型 --- 指向int型数据的指针类型。将a的地址强制转换为char*类型指针p,这样p就指向a的第一个字节(最低地址的字节)。

2026-01-26 21:47:13 521

原创 day 10 函数、数组学习

1. 函数的思想2. 函数语法 函数定义 //位置 main函数之前 main函数之后 函数调用 main函数之前定义 直接用 main函数之后定义 函数声明 //函数头 复制 后 加个分号 //必须放到 使用之前 3. 函数定义的细节 //函数返回值类型 //函数名 //形参 //形参和实参 ---- 个数 类型 顺序 /

2026-01-21 13:17:30 583

原创 day9——数组小结,初识函数

二维数组的定义需要指定行数和列数,语法如下:数据类型 数组名[行数][列数];函数定义的一般形式:类型标识符 函数名 ( 形式参数) //函数头//声明部分//语句部分函数体 (4) //body函数 ---要实现功能 就是要处理数据输入-->函数-->结果(输出)(1).类型说明符 --- 代表的就是数据类型返回值的数据类型eg:基本类型都可以但是数组类型不能做函数返回值类型 --- 原因: 函数无法返回一堆数据。

2026-01-20 08:42:48 587

原创 C语言循环与数组解析

语法格式:类型说明符 数组名[常量表达式];(1)类型说明符表示的是该数组要处理的具体的数据类型char(2)数组名本质上就是一个标识符命名规则 和 变量的命名规则一致(3)[常量表达式][] //表示是数组类型 --- 数组//定义时的[] ---表示数组//数组元素引用时[] --- 表示 数组下标的运算常量表达式 //确定该数组中要存放的变量的个数//本质上是一个整型常量值//数组长度 --- 表示元素个数//表示定义了10个int型变量。

2026-01-15 13:22:56 623

原创 C语言转义字符与数据类型详解

4. printf("%d%d",i++,++i) //尽量不写出这样的代码,运算运输和结果难以预料。rvalue --- right value --- 右值 ---- 只能放在=(赋值运算)右边的。lvalue --- left value --- 左值 ---- 能放在=(赋值运算)左边的。// 反码:1 111 1111 1111 1111 1111 1111 1111 0101。// 补码:1 111 1111 1111 1111 1111 1111 1111 0110。

2026-01-13 22:08:27 590

原创 程序设计的三大结构:顺序、选择与循环

任何程序都是以下三种结构的组合:顺序结构:按照代码书写的顺序依次执行选择结构(分支结构):根据条件不同选择执行不同的代码块循环结构:重复执行某段代码直到满足特定条件。

2026-01-13 21:20:33 708

原创 day4-C语言输入输出与语句详解

/最后这个\n不要写,否则结束不掉,原因一个空白符,匹配任意多个输入的空白符。但是,在输入整数后按下的回车键会留在缓冲区中,被后续的字符读取函数读取。键盘/文件/网络 → 输入 → [内存/程序] → 输出 → 显示器/文件/打印机。如果缓冲区中有残留数据(如换行符),可能会影响后续的读取。从标准输入(键盘)读取数据,按照指定的格式进行转换,并存储到指定的内存地址中。成功时返回输出的字符总数(不包括字符串结束符'\0'),失败时返回负值。:多个数据输入时,默认以空白字符(空格、换行、制表符)分隔。

2026-01-12 20:57:26 657

原创 c语言中的整型、字符型、浮点型数据;原码、反码、补码;浮点数存储方法

'a''0''\n'(字符'a'变成'b'

2026-01-10 21:13:56 925

原创 初识VMware+Ubuntu:虚拟化与Linux入门指南

vmware :虚拟化软件。将硬件用软件的方式虚拟出来。相当于在你的电脑上虚拟了一台计算机计算机 一般有 显卡、 CPU、 内存 、 硬盘 、 主板 、 鼠标 键盘 显示屏是一个。Linux本身只是一个操作系统内核(好比汽车的发动机)。在这个“发动机”之上,集成了图形界面、办公软件、媒体播放器、网页浏览器、开发工具等所有你需要的软件,打包成了一个(好比一辆组装好、加满油、可以直接上路的汽车)。这种打包好的系统就叫“Linux发行版”。1、首次启动虚拟机,可能没有终端图标。

2026-01-09 10:17:16 841 1

空空如也

空空如也

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

TA关注的人

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