自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Codes

个人代码库

  • 博客(72)
  • 收藏
  • 关注

原创 【嵌入式笔记】Linux内核的组成部分

系统调用接口:内核提供了一组系统调用接口,允许用户程序与内核进行交互。这些接口允许用户程序请求内核执行特定的操作,如文件操作、进程管理等。文件系统:Linux内核提供了文件系统的支持,包括文件和目录的创建、读取、写入和删除等操作。它还负责处理文件系统的权限和安全性。Linux内核是一个开源的操作系统内核,它是Linux操作系统的核心部分。它分配和释放进程的资源,调度进程的执行顺序,并提供进程间通信的机制。内存管理:内核管理系统的内存资源,包括分配和释放内存,虚拟内存管理,页面置换和内存保护等。

2024-08-05 12:26:17 146

原创 【嵌入式笔记】CAN总线

CAN总线的设计目标是提供一种高可靠性、高灵活性和成本效益的通信解决方案,适用于需要高实时性和容错能力的系统。

2024-08-02 10:19:59 446

原创 【嵌入式笔记】IIC协议

IIC(Inter-Integrated Circuit,集成电路间)协议,也常被称为I2C,是一种多主机、串行计算机总线。:在每次字节传输后,接收方(无论是主设备还是从设备)通过在SCL的下一个时钟脉冲期间将SDA线拉低来发送一个应答(ACK)信号。:I2C协议使用7位或10位地址来标识从设备,这允许在同一个总线上连接多达127(7位地址)或1023(10位地址)个不同的设备。:在多主机系统中,如果有多个主机同时尝试控制总线,I2C协议使用一种称为“仲裁”的机制来决定哪个主机获得总线控制权。

2024-08-02 10:19:30 224

原创 【嵌入式笔记】SPI协议

SPI(Serial Peripheral Interface,串行外设接口)是一种常见的串行通信协议,用于微控制器和它们的外围设备之间进行通信。SPI是一种高速、全双工、同步的通信方式,通常用于短距离通信。:SPI通信的数据宽度是可配置的,常见的有8位、16位等,这个宽度称为“字大小”(Word Size)。:根据CPOL和CPHA的不同设置,SPI有四种通信模式,每种模式都有其特定的时钟信号和数据采样方式。:SPI设备通常通过一个共享的时钟线和数据线连接,每个从设备都有一个专用的片选线连接到主设备。

2024-08-02 10:19:13 203

原创 【嵌入式笔记】RS232和RS485区别

RS232和RS485是两种不同的串行通信协议,它们在电气特性、连接方式、通信距离和数据传输速率等方面存在差异。在选择串行通信协议时,需要根据通信距离、连接设备数量、抗干扰能力等需求来决定使用RS232还是RS485。

2024-08-01 15:29:15 240

原创 【嵌入式笔记】中断与异常

中断是一种异步事件,当外部设备或系统条件满足特定要求时,会向CPU发送信号,请求立即处理。

2024-08-01 15:26:22 493

原创 【嵌入式笔记】CPU的cache

CPU中的缓存(Cache)是一种位于CPU和主存储器(RAM)之间的高速存储器,用于暂时存储指令、数据和处理结果。缓存的主要作用是减少CPU访问主存储器的次数,从而提高系统的性能。

2024-08-01 15:16:52 241

原创 【嵌入式笔记】CPU,MPU,MCU,SOC,SOPC联系与差别

CPU、MPU、MCU、SoC和SoPC是电子设计和计算机工程领域中的术语,它们描述了不同类型的处理器和系统级芯片。

2024-08-01 15:12:07 384

原创 【嵌入式笔记】NAND FLASH 和NOR FLASH异同

NAND Flash和NOR Flash是两种不同类型的非易失性存储器,它们在特性、用途和性能方面有各自的特点和差异。

2024-08-01 15:09:27 430

原创 【嵌入式笔记】【C语言】位操作

【代码】【嵌入式笔记】【C语言】位操作。

2024-08-01 15:02:24 232

原创 【嵌入式笔记】【C语言】inline与宏定义

在C语言中,inline 函数和宏定义(通常使用 #define 指令)都用于提高代码的效率,但它们之间存在一些重要的区别:宏定义使用 #define 指令和宏替换文本:类型检查:inline 函数在编译时会进行类型检查,确保传入的参数类型正确。宏定义不会进行类型检查,它在预处理阶段进行文本替换,可能会导致类型不匹配的错误。使用 inline 函数可以进行正常的调试,因为它们在调用时会保留函数调用的上下文信息。宏定义在调试时可能不太容易追踪,因为它们在预处理阶段就被替换了,替换后的代码可能难以阅

2024-08-01 14:56:58 325

原创 【嵌入式笔记】【C语言】指针

声明指针时,需要指定指针指向的数据类型,以及指针的名称。int *p;

2024-08-01 14:49:09 157

原创 【嵌入式笔记】【C语言】sizeof 和 strlen

sizeof 是一个编译时运算符,用来确定变量或数据类型在内存中的大小(以字节为单位)。它可以用来获取任何数据类型的大小,包括基本数据类型、结构体、联合体、数组等。sizeof 的结果是一个 size_t 类型的值,size_t 是一个无符号整数类型,定义在 头文件中。

2024-08-01 14:33:53 161

原创 【嵌入式笔记】【C语言】struct & union

union 联合体名 {member1;// 成员1member2;// 成员2...//例如:int i;float f;// 联合体的大小将由最大的成员决定,这里是str[20]

2024-08-01 14:29:46 381

原创 【嵌入式笔记】【C语言】程序的内存布局

BSS段(Block Started by Symbol Segment):存储程序中未初始化的全局变量和静态变量。只读数据段(Read-Only Data Segment, rodata):存储程序中的只读数据,包括字符串常量和const变量。代码段(Code Segment/Text Segment):存储程序的指令,通常是只读的。栈(Stack):局部变量和函数调用的上下文信息存储的地方,由编译器自动管理。数据段(Data Segment):存储程序中已初始化的全局变量和静态变量。

2024-08-01 14:20:06 111

原创 【嵌入式笔记】【C语言】const

在嵌入式C语言中,const关键字用于声明一个只读变量,即一旦初始化后,其值不能被修改。使用const可以提高代码的安全性和可读性,并且有助于编译器优化。

2024-08-01 14:16:54 178

原创 【嵌入式笔记】【C语言】extern

在C语言中,“extern” 是一个关键字,用于声明一个变量或者函数是在其他文件中定义的。它的作用是告诉编译器某个变量或者函数的定义在当前文件之外,需要在其他文件中寻找其定义。

2024-08-01 14:06:11 356

原创 【嵌入式笔记】【C语言】volatile

例如,在处理外部设备的寄存器时,这些寄存器的值可能会被设备本身异步地修改,而不是通过程序控制。在上面的示例中,device_register被声明为volatile,这样编译器在生成机器代码时会确保每次访问device_register都会从地址0x1000处读取最新的值,而不会使用任何缓存的优化。在嵌入式C编程中,特别是涉及到并发访问、中断处理和硬件寄存器的情况下,使用"volatile"关键字非常重要,因为它可以确保编译器不会对这些变量的读写进行优化或者重排,从而保证代码的正确性和预期行为。

2024-08-01 14:02:21 206

原创 【嵌入式笔记】【C语言】static

静态变量在函数内部声明时,表示该变量在整个程序的执行期间保持其存储位置和值,不会被局部作用域的生命周期所影响。静态变量的特点包括:它们在程序启动时被初始化,并且只初始化一次。它们的作用域仅限于定义它们的源文件。它们默认初始化为0(对于静态全局变量和静态局部变量)或者NULL(对于静态指针变量)。

2024-08-01 14:00:22 109

原创 LPCWSTR初始化问题

问题记录已解决lpcwstr初始化 const char* 不能初始化LPCWSTR类型2022-02-23 15:27:56创建WINDOWS 窗口时会用到LPCWSTR类型。不能够直接用string类型初始化:LPCWSTR lParam = “lParam”;解决方法:利用TEXT宏。TEXT宏可以对字符串进行透明化处理。利用以下方式初始化:LPCWSTR lParam = TEXT(“lParam”);...

2022-07-10 11:12:06 1238 1

原创 嵌入式学习札记(基于STM32L431) 一、ARM Cortex-M4微处理器

ARM Cortex-M4微处理器写在前面ARM Cortex-M4微处理器简介ARM Cortex-M4微处理器内部结构概要位数总线结构中断控制存储器保护低功耗内部寄存器寻址方式与机器码获取方法指令保留字简表与寻址方式指令保留字简表寻址方式立即数寻址寄存器寻址直接寻址偏移寻址及寄存器间接寻址机器的指令码运行源文件执行程序所获得的信息写在前面本系列学习主要参照了王宜怀老师主编,清华大学出版社出版的《嵌入式技术基础与实践(第六版)》一书,有兴趣的可以自行购买,正版书籍附赠开发版供实验所需ARM Cort

2021-11-04 16:37:12 5576 2

原创 【JAVA】自学笔记-03-抽象类和抽象方法-接口声明及实现

用关键字abstract修饰的类成为abstract类(抽象类)abstract class A{ .......}对于抽象类不能直接实例化对象,即不能使用new运算符创建该类的对象,只能先创建其子类,由子类创建对象抽象类可以声明对象,作为子类对象的上转型对象和普通的类相比,抽象类里可以有抽象方法。也可以没有抽象方法。对于abstract方法,值允许声明,不允许实现抽象方法不...

2020-04-20 17:20:13 309

原创 【JAVA】自学笔记-02-类和对象-封装-继承-static-final-super

具体包括面向对象基本思想基本讲解如何创建、使用对象类中变量和方法的使用与理解构造函数与Java的垃圾收集机制static与this关键字的理解类的组合以及包的创建和使用一、面向对象编程的三个特性封装面向对象编程核心思想之一就是将数据和对数据的操作封装在一起。通过抽象从具体的实例中抽取共同的性质形成一般的概念,比如类的概念。人们经常谈到的机动车类就是从具体的实例中抽取共同...

2020-04-20 17:06:16 164

原创 【JAVA】自学笔记-01-数组

自学笔记-01-数组一维数组数组下标可以是整型常数或表达式数组是一个对象,每个数组对象都有length属性,表示数组的长度,用来记录数组中元素的个如果使用没有初始化的数组,系统会产生NullPointException异常,提示用户没有初始化数组数组创建后,系统会自动为数组元素赋值引用数组元素时若下标超出范围,会产生ArraryIndexOutOfBoundsException声...

2020-04-20 15:46:08 300

原创 【7050】已知散列函数为H(key)=key mod 13,冲突处理方法为外拉链法实现散列表的建立(利用插入算法实现)

#include<iostream>using namespace std;typedef struct node { node* next; int data;}LNode, * LinkList;typedef struct hashlist { int ListLength; LinkList list;}HashList;void Li...

2019-12-09 14:50:05 4748 4

原创 【7051】已知散列函数为H(key)=key%p,冲突处理方法分别为线性探测法实现散列表的建立(插入算法实现)

#include<iostream>#include<string.h>using namespace std;void Insert_HashList(int* hashlist, int ListLength, int key) { //calculate p value int p = 0; for (int i = ListLength; i ...

2019-12-09 14:20:41 4123

原创 【7081】利用二叉排序树的插入算法创建二叉排序树,并中序遍历该二叉树

#include<iostream>using namespace std;typedef struct node { int data; node* lChild, * rChild;}Tree,*Bitree;void CreateTreeByOrder(Bitree& t, int n) { if (t) { if (t->data &...

2019-12-05 13:45:14 923

原创 【7083】试编写有序表折半查找算法

#define _CRT_SECURE_NO_WARNINGS#include<iostream>using namespace std;int main() { int a; int arr[10000]; cin >> a; int i = 0; while (a != 0) { arr[i] = a; cin >&gt...

2019-12-05 13:40:43 757

原创 【7041】以有向图的邻接表为基础实现输出它的拓扑排序序列

#include<iostream>#include<queue>#include<string.h>#include<stack> using namespace std;typedef struct ArcNode { int adjvex; struct ArcNode* nextArc;}ArcNode; //边...

2019-12-05 13:39:35 870 1

原创 【7040】再有向图的邻接表存储的基础上,试设计算法计算各顶点的度,并依次输出,入度,出度,度

#include<iostream>#include<queue>#include<string.h>using namespace std;typedef struct ArcNode { int adjvex; struct ArcNode* nextArc;}ArcNode; //边节点typedef struct VNod...

2019-12-05 13:37:51 1424 1

原创 【7039】试编写算法,创建有向图邻接表,并深度优先遍历

#include<iostream>#include<queue>#include<string.h>using namespace std;typedef struct ArcNode { int adjvex; struct ArcNode* nextArc;}ArcNode; //边节点typedef struct VNod...

2019-12-05 13:34:58 434

原创 【7042】采用邻接表存储实现无向图的深度优先非递归遍历

#include<iostream>#include<queue>#include<string.h>using namespace std;typedef struct ArcNode { int adjvex; struct ArcNode* nextArc;}ArcNode; //边节点typedef struct VNo...

2019-12-05 13:33:18 1220

原创 【7043】利用邻接表实现无向图的广度优先遍历

#include<iostream>#include<queue>#include<string.h>using namespace std;typedef struct ArcNode { int adjvex; struct ArcNode* nextArc;}ArcNode; //边节点typedef struct VNod...

2019-11-26 17:10:18 834 3

原创 【6111】查找值为x的节点的所有祖先节点并输出

#include<iostream>#include<string>#include<queue>using namespace std;typedef struct node { string data; node* lChild, * rChild;}Node,*Tree;void CreateTree(Tree& ...

2019-11-06 11:38:21 758

原创 【6109】将两个递增有序单链表合成一个递增有序的单链表

#include<iostream>#define RESULT int#define OK 1#define ERROR 0using namespace std;typedef struct Node { int data; Node* next;}LNode, * LinkList;RESULT InitList(LinkList& L...

2019-11-06 11:36:26 1064

原创 【7074】求二叉树高度

#include <iostream>#include <stdio.h>#define MAXSIZE 10000using namespace std;typedef struct bitnode{ char data; struct bitnode* lChild,*rChild;}BiTNode,*BiTree;char a;...

2019-11-06 11:34:47 193

原创 【7075】二叉树的后序遍历

#include <iostream>#include <stdio.h>#define MAXSIZE 10000using namespace std;typedef struct bitnode{ char data; struct bitnode* lChild,*rChild;}BiTNode,*BiTree;void Cr...

2019-11-06 11:33:24 163

原创 【7076】二叉树的叶子节点数

#include <iostream>#include <stdio.h>#define MAXSIZE 10000using namespace std;typedef struct bitnode{ char data; struct bitnode* lChild,*rChild;}BiTNode,*BiTree;void Cr...

2019-11-06 11:32:05 185

原创 【7077】二叉树的层次遍历序列

#include <iostream>#include <stdio.h>#include <queue>#define MAXSIZE 10000using namespace std;typedef struct bitnode{ char data; struct bitnode* lChild,*rChild;}BiT...

2019-11-06 11:30:36 409

原创 【7079】中序遍历二叉树

#include <iostream>#include <stdio.h>#define MAXSIZE 10000using namespace std;typedef struct bitnode{ char data; struct bitnode* lChild,*rChild;}BiTNode,*BiTree;void Cr...

2019-11-06 11:28:05 220 1

玄铁C906 R1S0用户手册

玄铁C906 R1S0用户手册

2024-08-02

ltc7802-3.3 电源芯片手册

LTC7802-3.3:作为核心降压转换器,提供同步双相降压解决方案。LTC7802-3.3是一款由Analog Devices生产的高性能双相同步降压控制器,专为需要高效率和高电流输出的应用而设计。

2024-08-02

空空如也

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

TA关注的人

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