- 博客(43)
- 收藏
- 关注
原创 网络编程基础——UDP编程(2)
UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联) 参考模型中一种无连接的传输层协议。UDP协议与TCP协议一样用于处理数据包,在OSI模型中,两者都位于传输层,处于IP协议的上一层。UDP有不提供数据包分组、组装和不能对数据包进行排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。UDP用来支持那些需要在计算机之间传输数据的网络应用。
2023-01-16 19:54:38
308
原创 网络编程基础(1)
七层模型,亦称OSI(Open System Interconnection)。参考模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系,一般称为OSI参考模型或七层模型。它是一个七层的、抽象的模型体,不仅包括一系列抽象的术语或概念,也包括具体的协议。
2023-01-16 18:57:23
539
原创 简单小项目:基于Mplayer的视频播放器(Linux)
基于Mplayer的视频播放器(Linux) 0.以文件的形式存储软件的日志信息 1.该程序能够加载指定路径下所有的音视频文件 (.mp3 .mp4 .avi .rm .rmvb .flv .wma) 2.能够通过输入操作视频播放器
2023-01-08 21:42:43
3345
1
原创 进程间通信——共享内存
理解 Linux 系统内存模型可以有助于解释这个绑定的过程。在 Linux 系统中,每个进程的虚拟内存是被分为许多页面的。这些内存页面中包含了实际的数据。每个进程都会维护一个从内存地址到虚拟内存页面之间的映射关系。尽管每个进程都有自己的内存地址,不同的进程可以同时将同一个内存页面映射到自己的地址空间中,从而达到共享内存的目的。
2023-01-05 22:57:50
739
原创 进程间通信——信号
进程间通信,用来发送通知(异步通信,中断)内核层给用户层传递消息,通过发送信号实现硬件同步通信:发送端和接收端,使用同一时钟通信异步通信:发送端和接收端使用不同时钟通信软件同步通信:按照指定的顺序进行运行异步通信:一种随机事件,在程序编写阶段不能够确定事件发生的时机
2023-01-05 22:24:01
627
1
原创 进程间通信——管道通信
管道是UNIX 系统IPC 的最古老形式, 并且所有UNIX 系统都提供此种通信机制。管道有下面两种局限性:一、 历史上, 它们是半双工的( 即数据只能在一个方向上流动) 。现在, 某些系统提供全双工管道, 但是为了最佳的可移植性, 我们决不应预先假定系统使用此特性。二、它们只能在具有公共祖先的进程之间使用。通常, 一个管道由一个进程创建, 然后该进程调用fork, 此后父、子进程之间就可应用该管道。。
2023-01-04 22:08:43
973
原创 用进程fork和exec来实现一个模拟shell(简单版,代码量少)
用进程fork和exec来实现一个(minishell)模拟shell(简单版,代码量少)
2023-01-03 21:51:13
811
原创 基于Linux系统的文件IO操作
本文浅浅的描述一下linux文件io基本的函数,文件IO也称为系统调用IO,是操作系统为"用户态"运行的进程和硬件交互提供的一组接口,即操作系统内核留给用户程序的一个接口,按照操作系统的结构划分,Linux系统自上而下依次是:用户进程、Linux内核、物理硬件。其中Linux内核包括系统调用接口和内核子系统两部分。Linux内核处于“承上启下”的关键位置,向下管理物理硬件,向上为操作系统和应用程序提供接口,这里的接口就是系统调用。
2023-01-03 21:29:11
470
原创 C语言_(13)_单向链表(通俗易懂,理解链表看这个就行了)
如果我要在链表的最前端插入一个新的结点,这种方法叫做头插法。那我们将怎样把这个结点插入在前面呢,假设后面有其他旧的结点,那么该怎么能插入这个新结点并且不让后面的旧的结点失去联系。
2022-12-21 20:08:01
214
原创 C语言_(11)_指针的高级用法
1 地址:用来区分内存中不同字节的编号2 指针:地址就是指针,指针就是地址3 指针变量:一个存储地址的变量4 &:这个符号是用来获得一个变量在内存空间中的首地址,并且让表达式类型升级。 例如int型--->>int*型。5 *:这个符号如果在表达式=右边,表示取指针指向空间的值(所取得的空间大小取决于指针的类型)。如果在表达式=左边,表示将右边的值放入指针指向的空间。也有让表达式类型降级的作用。例如int*型--->>int型。
2022-12-19 17:16:00
385
原创 C语言_(10)_构造数据类型_枚举(3)
特性:枚举类型定义了一系列枚举常量,可以在程序中直接使用。 枚举常量的值是上一个常量加一,第一个值默认为0。 枚举常量可以直接赋值,在没有特定说明,默认为int型。
2022-12-19 10:12:40
140
原创 字符串b插入字符串a,统计字符串个数(c语言写法)
花花非常喜欢这种拥有对称美的回文串,生日的时候她得到了两个礼物分别是字符串A和字符串B。现在她非常好奇有没有办法将字符串B插入字符串A使产生的字符串是一个回文串。你接受哗哗的请求,帮助她寻找有多少种插入办法可以使新串是一个回文串。如果字符串B插入的位置不同就考虑为不一样的办法。
2022-11-26 20:46:29
533
原创 C语言_(10)_构造数据类型_结构体(1)
在起初学习C语言时,我们操作的对象基本上都是数,字符。那我们想构造一些类型的话,比如电脑、小猫、小狗、人、年龄、时间。则我们可以用关键字struct来构造出这个我们想要的类型。假如构造个小猫类型,他会有小猫A、小猫B、小猫C等等......我们就要用结构体这个东西了。
2022-11-03 21:00:40
247
原创 封装string.h中基本函数,strlen,strcmp,strcpy,strcat
Mystrcmp:将str2中的内容追加到str1中。Mystrcat:比较字符串str1和str2的字典序大小(ASCII)。Mystrcmp:将str2的内容复制给str1,注意str1内存大小.Mystrlen:返回字符串的长度
2022-11-03 16:12:52
175
原创 c语言数组与指针的剖析
在c语言中如果,我们给数组的数组名(即指向数组第一个元素的指针)进行自加运算,加的是这个数组定义的单个元素的字节,如果用int定义,则加的是4字节,也就是指向了数组向后偏移一个位置的元素。
2022-10-31 00:01:13
121
原创 SPI协议(学习笔记)
SPI 协议是由摩托罗拉公司提出的通讯协议 (Serial Peripheral Interface),即串行外围设备接口,是一种高速全双工的通信总线。它被广泛地使用在 ADC、 LCD 等设备与 MCU 间,要求通讯速率较高的场合。
2022-10-25 19:23:16
412
原创 stm32__IIC(学习笔记)
I2C 通讯协议 (Inter - Integrated Circuit) 是由 Phiilps 公司开发的,由于它引脚少,硬件实现简单,可扩展性强,不需要 USART、 CAN 等通讯协议的外部收发设备,现在被广泛地使用在系统内多个集成电路 (IC) 间的通讯。
2022-10-23 12:18:51
453
原创 stm32_ DMA (火良哥笔记)
DMA:Direct Memory Access,直接储存器访问。主要功能是可以把数据从一个地方搬到另外一个地方 ,而且不占用CPU。DMA1:有七个通道,可以实现P->M M->P M->MDMA2:有五个通道,可以实现P->M M->P M->M。
2022-10-14 00:16:49
192
原创 USART——串口通信(火良哥课堂笔记)
规定通信系统中具有机械、电子功能部分的特性,确保原始数据在物理媒体的传输。其实就是硬件部分。协议层主要规定协议逻辑,统一收发双方的数据打包、解包标准。其实就是软件部分。RS232标准串口主要用于工业设备直接通信电平转换芯片一般有MAX3232、SP3232 USB转串口主要用于设备跟电脑通信电平转换芯片一般有CH340、PL2303、CP2102、FT232使用的时候电脑端需要安装电平转换芯片的驱动 原生的串口通信主要是控制器跟串口的设备或者传感器通信,不需要经过电平转换芯片来转换电平,直接就用TTL通信就
2022-10-12 17:32:32
2627
原创 Sys Tick——系统定时器简述(内附滴答延时程序)
SysTick是STM32系统内部的定时器,计数器为24位,并且只能够递减,存在于内核中,嵌套在NVIC中,所有的Cortex-M内核的单片机都具有这个定时器。
2022-09-29 22:49:58
792
1
原创 stm32外部中断的简单理解与操作简单范例——按键控制LED翻转
STM32F10x最多有84个中断,包括16个内核中断和68个可屏蔽中断,具有16个可屏蔽中断优先级。下文我所用的STM32F103系列具有60个可屏蔽中断。STM32F103中断系统提供10个系统异常和60个可屏蔽中断,具有16个可屏蔽中断优先级。可屏蔽中断源包括外部中断、定时器中断、串口中断、直接内存访问中断(DMA)、模数转换中断(A/D)、集成电路总线中断、串口外设接口中断等。其中,本帖子用到的外部中断由嵌套向量中断控制器NVIC和外部中断/事件控制器EXTI来控制。
2022-09-22 18:26:00
2500
1
原创 基于Linux系统用C语言实现myshell(minishell)功能实现
实现原理很简单,我们将用户输入的字符串读取到我们的缓冲区中,,并且将重定向符改为\0并且读取出重定向的文件,随后保存判断结果。之后我们再次遍历一遍进行指令处理,我们利用字符指针数组让每一个指针指向每一个指令,并且将之间的空白符如(空格)改为\0。做完以上这一切,创建子进程利用进程替换将其替换为目标指令中的程序让其执行指定功能,如果有重定向符要先打开指定文件并且将标准输入重定向到指定文件中,者必须在子进程中完成,然后等待子进程关闭,父进程阻塞,并且让以上过程不断循环即可。...
2022-09-03 12:00:17
2990
原创 C语言选择排序法(通俗易懂类型)
选择排序顾名思义,选择二字为核心。而且这种排序方法用一种是用每轮来假设一个下标(这里我们每轮假设一个下标min),然后向后一个个比较选择出本轮需要的下标成为这个min然后交换到自己排序目的的位置...
2022-08-26 17:16:27
3472
原创 C语言冒泡排序法(通俗易懂类型)
这类方法是c语言新手用的相对较多的一种简单排序方法,接下来我用我自己的理解来解析一下易懂原理。 为了通俗易懂,给一个小的题目来讲解就是从终端输入5个数,存进数组,然后我们用从小到大的顺序对这个数组进行排序,然后打印在终端。......
2022-08-25 19:02:21
814
1
模拟shell(minishell)(myshell)
2023-01-03
我实现的是用按键控制LED灯的翻转,我的板子上面有两个按键,我也就写了两个按键
2022-09-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人