自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 STM32( ADC+DMA)

对于第二点,有一些敏感数据,比如产品的重要运行参数或者加密的秘钥,不希望能够被轻易的获取到,通常不存放在MCU的Flash区域,因为放在Flash里毕竟不太安全,所以存放在RAM区域中,而RAM有一个特征是掉电后。CPU无时不刻的在处理着大量的事务,但有些事情却没有那么复杂,比方说数据的复制和存储数据,如果我们把这部分的CPU资源拿出来,让CPU去处理其他的复杂计算事务,能够更好的利用CPU的资源。在所有的选中的转换通道中进行单次转换,由触发信号开启新一轮的转换,直到所有的通道转换完成。

2026-10-20 20:32:23 249

原创 STM32U575RIT6(时钟系统)

RC振荡器和LC振荡器是简单的振荡器,适用于一些低要求的应用场景,而晶体振荡器则具有更高的频率稳定性和精度,适用于对时钟信号要求较高的电子系统倍频器cpu需要更高的频率,但是晶体振荡器的制作成本较高(而且频率越高,自身的频率也不稳定),不适合直接生产高振荡器,所以需要用到倍频器对现有的时钟频率进行放大。分频器外设需要不同的频率,为了降低功耗,进行分频,以保证不同的时钟信号STM32U5的时钟源在MX中如何开启外部时钟时钟树。

2026-10-08 19:47:35 247

原创 线程知识点

线程同步1.概念轻量级的进程同一个进程中创建多个线程共享进程地址空间,引入线程可以提高系统的性能2.进程和线程区别共同点:都为系统提供并发执行的能力不同点:资源和调度:进程是系统资源分配的最小单位,线程是资源调度的最小单位地址空间:每个进程都有独立的地址空间;同一个进程中的多个线程共享进程地址空间通信方面:多线程的通信比较简单,借助全局变量,但是需要考虑临界资源的访问问题;多进程的通信比较复杂,需要借助3-4g的内核空间(共享的)来完成通信安全性方面:进程相对比较安全(空间独立。

2026-10-08 19:30:25 278

原创 STM32U575RIT6(中断)

嵌套向量中断控制器(NVIC),和内核捆绑在一起,NVIC和处理器内核接口紧密配合,可以实现低延迟的中断处理和晚到中断的高效处理,包括内核异常在内的所有中断均通过NVIC进行管理。EXTI相当于小助理的小助理NVIC和内核捆绑在一起,EXTI在外部负责事件和中断的初步筛选,专门用来管理产生中断和事件。中断和事件的区别?中断:只要是中断就能够打断CPU正常工作。事件:送给外设或者外部设备的信号,本质就是IO口的电平信号。

2026-09-15 19:26:44 130

原创 Qt速通2

1.在Qt Creator中选中项目名称,鼠标右键点击添加新文件。2.在弹出的窗口中,按照下图所示进行操作。3.在弹出的窗口中,选择界面模板后,点击下一步4.在弹出的窗口中,输入类名(帕斯卡命名法/大驼峰),点击下一步5.在项目管理界面直接点击完成,可以看到新的窗口类文件已经添加到项目中了。ui如下dialog.hQ_OBJECTpublic:~Dialog();

2026-09-12 15:41:38 241

原创 QT基础1

Qt不可能内置所有的执行动作代码,特别是一些复杂的动作,需要开发者手动进行编写槽函数,这种方式也是所有连接方式中使用最多的。槽函数实际上也是一个成员函数,在声明的时候权限的作用主要是修饰其作为普通成员函数的使用效果,不影响信号槽的连接效果。【例子】点击按钮,窗口向下向右,移动十个像素。// 声明自定义槽函数```dialog.cpp```cpp。

2026-09-10 20:09:12 115

原创 C++速通2

int a = 3;int b = 4;// 声明名字空间int main()int a = 1;// 1// ::表示全局作用域 2// 3// 4return 0;```一个函数使用virtual关键字修饰,就是虚函数,虚函数是函数覆盖的前提。在QtCreator中使用斜体字。```cpppublic:// 虚函数cout << "动物爱吃饭" << endl;

2026-09-09 20:11:54 450

原创 C++基础速通

C++保留了C语言的大部分语法,并增加了类、对象、集成、多态、函数重载等能力。已经学过C,因此本课程不重新讲变量、循环、数组和指针,而是重点学习C++对程序结构的组织方式。

2026-09-08 19:44:17 241

原创 STM32U575RIT6(IIC+SHT20)

IIC(Inter-Integrated Circuit)是一个多主从地串行总线,又叫I2C,是由飞利浦公司发明地通讯总线,属于半双工同步传输类型总线。IIC总线是非常常见地数据总线,仅仅使用两条线就能完成多级通讯,一条SCL时钟线,另一条双向数据线SDA。不同地器件,都是并联在这两条线上,I2C总线上地每个设备都有自己地一个唯一地地址,来确保不同设备之间访问地准确性。SDA(Serial data)是数据总线,D代表Data也就是数据,Send Data 也就是用来传输数据地。

2026-09-08 15:28:57 572

原创 STM32U575RIT6(SPI+数码管+LCD)

LED数码管(LED Segment Displays)是由8个发光二极管构成,并按照一定的图形及排列封装在一起的显示器件。其中7个LED构成7笔字形,1个LED构成小数点(有时称为八段数码管)。LED数码管有两大类,一类是共阴极接法,另一类是共阳极接法,共阴极就是7段的显示字码共用一个电源的负极,是高电平点亮,共阳极就是7段的显示字码共用一个电源的正极,是低电平点亮。74HC595ILI9341是一个支持分辨率为240RGBx320点阵的a-TFT LCD的262144(2^18)色单片机驱动器。

2026-09-02 20:03:06 398

原创 进程间通信IPC

共享内存指的是操作系统在物理内存中申请一块空间,应用程序可以映射到这块空间,进行直接读写操作。

2026-08-29 17:04:04 329

原创 STM32U575RIT6(USART)

至少要有两个端,发送端和接收端信息的传递数据的交互。

2026-08-29 11:43:32 502

原创 STM32U575RIT6(GPIO)

GPIO全称(General purpose input output):通用的输入输出接口I:input 输入O:outputGPIO是嵌入式系统,单片机开发中最常用的接口,用户可以通过编程灵活的对接口进行控制,实现对电路板上LED、数码管、按键等常用设备控制驱动,也可以作为串口的数据收发管脚,或AD的接口等复用功能使用。其作用和功能是非常重要的。打开时钟是能寄存器 RCC_AHB2ENR 位2写1。

2026-08-28 19:48:12 506

原创 网页协议与HTML基本标签

但是在实际开发过程中,对于GET,特定的浏览器和服务器对URL的长度有限制。对于POST,由于不是URL传值,理论上是不会受限制的,但是实际上各个服务器会规定对POST提交数据大小进行限制,Apache、IIS都有各自的配置。而每次提交的POST,浏览器在你按 下F5的时候会跳出确认框,浏览器不会缓存POST请求返回的内容。上,浏览器作为HTTP客户端通过URL主动向HTTP服务端即WEB服务器发送所有请求,Web服务器根据接收到的请求后,向客户端发送响应信息。简单说,GET是只读,POST是写。

2026-08-26 20:08:58 263

原创 STM32U575RIT6(单片机基础)

STM32是意法半导体公司生成的一款32位的微控制器。STM32 的功能强大,性能优异,片上资源丰富,低功耗,是一款经典的微控制器。4.2 命名规则STM32F051C8T6ST意法半导体M微控制器(microcotroller)3232位处理器类型F 通用/基础型 foundation G 多用途型 general-purposeL 低功耗 low power H 高性能 High performanceS 简单/标准型 Standard系列。

2026-08-26 19:52:23 346

原创 进程与进程间通信

编译好的可执行文件存放在磁盘上的指令和数据有序集合(文件)程序是静态的,没有任何执行概念一个独立的可调度的任务执行一个程序所分配资源的总称进程是程序的一次执行过程进程是动态的,包括创建、调度、执行和消亡。

2026-08-22 16:21:19 679

原创 Linux IO模型详解:从阻塞到多路复用

本文通过生动的场景假设,深入浅出地讲解Linux系统中的五种主要IO模型:阻塞IO、非阻塞IO、信号驱动IO、IO多路复用(select/poll/epoll)。文章结合代码示例和对比表格,帮助读者理解不同IO模型的工作原理、优缺点及适用场景。

2026-08-22 11:33:20 633

原创 C语言链接库

当使用别人的函数时除了包含头文件以外还要有库Linux系统存储库的位置一般在/lib或/usr/lib库文件:通俗讲将用户写好的程序打包形成一个整体;当其他用户或其他模块使用时,只要有这个库文件就可以,不需要源代码。也可以理解为一组预先编译好的方法集合。本质上来说库就是一种可执行的二进制形式由于Windows和Linux的本质不同,因此二者库的二进制是不兼容的lib:库文件include:头文件。

2026-08-21 20:15:22 176

原创 Modbus的介绍与使用

Modbus由Modicon公司于1979年开发,是一种标准。Modbus RTU、Modbus ASCII 和 Modbus TCP三种其中Modbus TCP是在施耐德收购Modbus后1997年发布的。

2026-08-20 20:07:38 420

原创 Wireshark与网络协议分析

/ 常用数据库分类// 大型数据库:Oracle// 特点:商业软件、支持多平台、关系型数据库// 优势:功能最强大、最复杂、市场占有率最高的商业数据库// 中型数据库:SQL Server// 特点:微软开发,主要支持Windows平台// 小型数据库:MySQL// 特点:开源、关系型数据库管理系统// 优势:目前使用最广泛、流行度最高的开源数据库// 嵌入式数据库:SQLite// 特点:// 1. 源代码使用C语言编写,完全开放。

2026-08-19 19:20:12 344

原创 标准IO与文件IO

又称系统IO,是系统调用,是操作系统提供的函数接口在posix(可以移植操作系统接口)中定义的一组输入输出函数。

2026-08-18 20:25:24 427

原创 服务器模型、网络调试工具、网络协议头分析

在网络程序中,通常都是一个服务器处理多个客户端的连接请求。为了高效处理多个客户端的并发请求,服务器程序采用了不同的处理模型。

2026-08-18 19:31:32 330

原创 UDP编程与网络通信

本文详细介绍了UDP编程的基本流程、函数接口,并深入讲解了广播和组播两种网络通信方式。通过对比TCP与UDP的区别,结合完整的代码示例和流程图,帮助读者全面理解UDP协议的特点和应用场景。

2026-08-18 18:41:47 387

原创 网络问题与基础理论

某公司有四个部门:行政、研发1、研发2、营销,每个部门各40台计算机接入公司局域网交换机。由于使用IP地址来指定计算机不方便人们记忆,且输入时容易出错,因此使用字符表示网络中计算机名称的方法应运而生。网络采用分而治之的方法设计,将网络的功能划分为不同板块,以分层的形式有机组合在一起。用于给局域网内所有主机发送数据,有效的网络号,主机号全为1。三级划分的子网掩码:网络号和子网号都是1,主机号是0。用于标识网络的地址,有效网络号,主机号全为0。:物→链(联)→网→输(叔)→会→示(使)→用。

2026-08-14 16:50:26 418

原创 树的基础知识与查找排序算法

二叉树(Binary Tree)是n(n≥0)个节点的有限集合,它或者是空集(n=0), 或者是由一个根节点以及两棵互不相交的、分别称为左子树和右子树的二叉树组成。有n个节点的完全二叉树可以用有n+1 个元素的数组进行顺序存储,节点号和数组下标一一对应,下标为零的元素不用。完全二叉树节点的编号方法是从上到下,从左到右,根节点为1号节点。度数:一个节点的子树个数(一个节点有几个孩子为该节点的度数)节点层次:根节点的层次为1,根节点子树的根为第2层,以此类推。内部节点:除根节点以外的分支节点 (去掉根和叶子)

2026-08-04 08:28:47 564

原创 双向链表的基础知识与双向循环链表

将新节点的 prior 指针指向直接前驱节点。将直接前驱节点的 next 指针指向新节点。5)删除双向链表指定位置的数据。1.2 双向链表相关的操作。7)查找指定数据出现的位置。4)判断双向链表是否为空。9)删除双向链表中指定的。8)修改指定位置的数据。1.2.1 代码实现。

2026-08-03 19:24:24 314

原创 数据结构队列特性与操作

注意:为了避免假溢出问题,即队列前面还有空闲,但是队尾已经出现越界,所以在实际使用队列时,为了使队列空间能重复使用,往往对队列的使用方法稍加改进,需要引入。答:rear 后面 队尾,在插入的时候,插入之前需要先判断他的下一个为位置是否 等于 front 来判断队列是否为满,会造成浪费一个存储位置。队列是只允许再两端进行插入和删除操作的线性表,在队尾插入,在队头删除,插入的一段被称为“队尾”,删除的一端被称为“队头”。操作:创建、入列、出列、判断是否为满或空、清空。操作:创建、入队、出队、清空、判空。

2026-08-03 19:03:50 391

原创 数据结构:队列与链表详解

双向链表(Doubly Linked List)是一种链式存储结构,每个节点包含三个部分:数据域、指向前驱节点的指针(prior)和指向后继节点的指针(next)。注意:为了避免“假溢出”问题(即队列前面还有空闲空间,但队尾已经出现越界),在实际使用队列时,为了使队列空间能够重复使用,往往需要对队列的使用方法稍加改进,引入。插入的一端被称为“队尾”,删除的一端被称为“队头”。特性:先进先出(FIFO,First In First Out),即最先入队的元素最先出队。顺序队列(循环队列)、链式队列。

2026-07-31 18:57:49 501

原创 线性表中的单向循环链表与栈

1. 元素进栈和出栈的操作只能从一端完成,另一端是封闭的2. 栈中无论存数据还是取数据,都必须遵循“先进后出”的原则,即最先入栈的元素最后出栈。以图1的栈为例,很容易可以看出是元素1最先入栈,然后依次是元素2、3、4入栈。在此基础上,如果想取出元素1,根据“先进后出”的原则,必须先依次将元素4、3、2 出栈,最后才轮到元素1出栈。栈是只能在一端进行插入和删除操作的线性表(又称为堆栈),进行插入和删除操作的一端称为栈顶,另一端称为栈底。特点:栈是先进后出FILO(First In Last Out)

2026-07-30 19:09:53 501

原创 学生管理系统makefile版C语言

makefile文件。

2026-07-30 08:29:28 134

原创 有头单向链表的增删改查

线性表。

2026-07-29 19:15:09 360

原创 学生管理系统普通版

【代码】学生管理系统普通版。

2026-07-29 08:29:12 223

原创 数据结构入门+链表的使用

摘要: 数据结构是高效编程的基础,用于解决数据存储与逻辑关系表达问题。它包含逻辑结构(线性、树形、图状)和存储结构(顺序、链式、索引、散列),核心操作为增删改查。算法依托数据结构设计,需满足正确性、易读性、健壮性和高效性,时间复杂度(如O(n)、O(n²))衡量其性能。线性表(顺序表、链表等)是最基本的数据结构,具有一对一关系,顺序表通过连续存储实现快速访问,但需处理插入/删除时的数据移动。实际应用中需结合问题特点选择合适结构,如顺序表适合静态数据,链表适合动态操作。

2026-07-28 20:19:08 313

原创 Linux 常用命令速查手册

将存储设备(如硬盘分区、光盘、ISO 镜像、网络共享)挂载到 Linux 目录树中的某个目录(挂载点),使其可访问。否则将 dir1 移动到 dir2 内部。:使用 sudo 权限切换到 root 用户(需要当前用户在 sudoers 列表中)。向指定进程发送信号,默认发送 TERM(15)信号,请求进程正常终止。:显示所有活跃网络接口的信息(IP 地址、MAC 地址、流量等)。:更强大的分页查看器,支持上下滚动和搜索(推荐使用 less)。:发送 SIGTERM(15)信号,请求进程正常退出(默认)

2026-07-28 09:18:24 900

原创 Valgrind 内存调试工具使用指南

它以其易用性和强大的社区支持而闻名,是初学者入门 Linux 的绝佳选择。Valgrind 是嵌入式开发和调试领域的一款神器级工具,无论是在虚拟机环境还是直接在设备上进行开发,都可以使用它来进行内存调试、内存泄漏检测以及性能分析。嵌入式系统是以应用为中心,以计算机技术为基础,软件硬件可裁剪,适用于对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。Shell 是用户与 Linux 内核之间的命令行接口,它解释用户输入的命令并传递给内核执行。:用户程序、命令行工具、图形界面应用。

2026-07-23 20:22:08 597

原创 头文件、条件编译、编译工具、make工具的使用

在 C/C++ 编程中,为了防止同一个头文件被多次包含(例如,多个源文件都包含了同一个头文件,或者头文件之间相互包含),我们通常使用预处理指令来保护头文件。从最终的可执行文件开始,思考它依赖哪些目标文件(.o),而这些目标文件又由哪些源文件(.c)编译而来。这样的目标,并不是为了生成一个名为“clean”的文件,而是为了执行一系列命令(如清理)。自动发现更新过的文件,从而减少不必要的编译工作量,提高编译效率。在 Makefile 中,变量可以简化规则,提高可维护性。变量名通常用大写表示,取值使用。

2026-07-22 20:50:46 498

原创 typedef、共用体、枚举、存储类型、分文件编程详细内容

本文介绍了C语言中typedef、共用体、枚举和存储类型的关键知识点。typedef用于为已有类型创建别名,提高代码可读性;共用体(union)允许不同数据类型共享内存空间;枚举(enum)定义一组命名整数常量;存储类型(auto/static/extern/register)决定了变量的存储位置和生命周期。最后讲解了分文件编程的方法,通过头文件和源文件分离实现代码模块化管理。这些特性共同增强了C语言代码的组织性和可维护性。

2026-07-21 20:23:55 556

原创 搞懂指针函数、函数指针和结构体

本文介绍了C语言中指针函数、函数指针和结构体的相关概念与应用。指针函数是返回指针的函数,需注意内存分配问题;函数指针是指向函数的指针,可用于函数调用和传参;结构体是用户自定义的复合数据类型,包含不同数据类型的成员变量。文章详细讲解了结构体变量和数组的定义、赋值及访问方式,结构体指针的使用,以及字节对齐原则和节省空间的方法。最后强调不能整体引用结构体变量,只能通过成员运算符逐级访问成员变量。

2026-07-20 20:08:44 393

原创 C语言字符串函数与递归函数详解

递归函数是指在函数体中直接或间接调用自身的函数。递归的核心思想是"分而治之",将一个大问题分解为规模更小的相似问题。

2026-07-17 20:01:32 293

原创 函数的基础知识与应用

本文介绍了C语言函数的基本概念和使用方法。主要内容包括:1. 函数的定义和三要素(功能、参数、返回值),区分了形参和实参;2. 函数的声明、定义和调用方式,特别说明了void类型函数的特殊性;3. 函数传参的三种方式:值传递(单向)、地址传递(双向)和数组传递;4. 栈区的概念和特点,说明函数调用时变量的存储机制;5. 堆区内存管理,介绍malloc函数的使用方法和注意事项,强调必须与free搭配使用。文章通过代码示例详细演示了各种函数用法,帮助理解函数在C语言中的实现原理和应用场景。

2026-07-16 18:37:11 296

SQLite数据库资源

SQLite数据库资源

2026-08-19

wireshark与包头分析、数据库编程

wireshark与包头分析、数据库编程

2026-08-19

数据结构层次遍历代码部分

数据结构层次遍历代码部分

2026-08-03

查找算法C语言版,基础查找算法

查找算法C语言版,基础查找算法

2026-08-03

学生管理系统普通版实现的效果

学生管理系统普通版实现的效果

2026-07-28

空空如也

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

TA关注的人

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