自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Linux文件操作系统(FTP云盘)

【代码】Linux文件操作系统(FTP云盘)

2024-03-21 00:37:59 99 2

原创 Linux C 之 共用体(联合体)

例如,初始了一个float类型的成员,那么其他成员就需要按照float类型的存储特点进行存储,分成整数部分与小数部分。共用体内的成员共同使用一块内存空间,多个成员,同一时间点只有一个能够使用,内存大小取决于内存最大的成员的大小。当给共用体中的一个成员赋值后,其他成员就需要按照被赋值成员的存储特点来进行存储。:共用体的大小取决于占用内存最大的类型,如,double(8个字 节)有多个成员,但某一时间点只有一个是有效的。

2023-10-22 00:26:28 229

原创 Linux C 之 结构体

6 % 4 = 2(不满足),7 % 4 = 3(不满足),地址加一,8 % 4 = 0(满足要求),所以该float型的值从地址8开始,即地址5,6,7没有内容。结构体的三个成员为float型 ,从第五个地址开始,即arr = 5,arr % sizeof(float) ,即5 % 4 = 1(不满足),地址加一,结构体的第二个成员为char型,从第四个地址开始,即arr = 4, arr % sizeof(char) = 0 ,地址对齐可以存放,该数据就存放在4。根据成员位置分配线性存储内存。

2023-10-22 00:22:21 164

原创 Linux C 之 函数

如: int (*funcp[2])(int ,int );->本质抽象 int (int,int) ( *funcp[2]);(TYPE NAME)如,int (*p)(int ,int ) - >int (int,int) ( *p);如:int *fun(int) ->int * (int,int) p。一个函数间接或直接地调用自身。

2023-10-22 00:00:23 98

原创 Linux C 之 指针

【存储类型】 数据类型 ( * 指针名)【下标】 = 值 如:int (*p)[3];记忆方法:先看到 * 再看到const,就读指针常量,const限制 p 所指向的地址,即指向不能变但是指针指向的值可以改变。记忆方法:先看到const再看到*号,就读常量指针,const限制 *p 所指向的值,即值不能变但是指针的指向可以改变。//常量指针,指针的指向可以发生改变,但是指针所指向的值不能发生改变。//指针常量,指针的指向不能发生变化,但是指针指向的值不能发生变化。

2023-10-21 23:41:01 82

原创 Linux C 之 数组

数组越界是因为指针机制(arr[i] = *(arr + i),需要程序员自己检查)1 fibonacci 数列(求该数列的前十项,并在数组中逆序存放)【存储类型】 数据类型 标识符 【行下标】 【列下标】【存储类型】 数据类型 标识符 【下标】数组名是表示地址的常量,也是数组起始位置。【存储类型】 数据类型 标识符 【下标】(构造类型之一,连续存放)数组名 【行标】 【列表】2 求最大值及其所在位置。3 求各行与各列的和。

2023-10-21 18:52:15 36 1

原创 Linux C 之 流程控制

NS图、 流程图 工具Dia 最好利用有限状态机。循环:在某个条件成立的情况下,重复执行某个动作。简单结构 与 复杂结构:自然流程。else只与离它最近的if相匹配。选择:出现了一种以上的情况。顺序 、 选择、 循环。别忘了default。

2023-10-21 18:33:58 20 1

原创 Linux C 之 输入输出——基本函数与格式字符

逗号后面只有一个参数 i ,i会赋值给 %d ,但 %e 在人为输入中没有相应的参数对应但它也会输出一个数据,这个数据通过变参函数来获取,变参函数通过获取 i 上面4个字节的内容并将其赋给%e来实现数值输出 (有报错为重载,无报错无警告为变参)3、书写printf 函数时最好习惯加上 \n ,因为函数的存储机制是行缓冲存储,即在输入语句末端遇到 \n时才刷新缓冲区,如果printf()下面跟的是while(1)死循环的话,printf()打印的内容会卡在缓冲区输出不出来,有\n则能输出。

2023-10-21 18:32:25 101 1

原创 Linux C 之 运算符和表达式

因为逻辑与左边的表达式为假,所以右边的表达式就不会去判断。左边为假则 m=0 ,右边的 n 值也为假,但因为短 路特性,因为左边已经为假,则不去判断右边的值,则 n 仍为 1。将操作数中第n位 置 0 ,其他位不变 :num = num & ~(1 << n);取余 % 两边的操作数必须是整数 5 % 2 = 1 (√) 5.0 % 2 (×)将操作数中第n位 置 1 ,其他位不变:num = num | 1 << n;测试第 n 位 :if( num & 1 << n);4)运算符的特殊用法。

2023-10-21 18:24:08 35 1

原创 Linux C 之 变量的定义、使用及全局变量

静态型,自动初始化为 0 值 或 空值,并值其变量的值有继承性,另外,常用于修饰变量或函数(例如,main.c与func.c中都有关于 全局变量 i 的定义,为了防止冲突即重复定义,可以在func函数定义全局变量 i 的时候加上 static ,即 static int i =0;(建议型关键字)寄存器类型,只能用来定义局部变量,不能定义全局变量;大小有限制,只能定义32位大小的数据类 型,如double类型不可以,寄存器没有地址,所以一个寄存器类型的变量无法打印地址查看或使用。基本数据类型+构造类型。

2023-10-21 18:19:12 144 1

原创 Linux C 之 define标识常量的使用

错误原因:i 和 j 在宏表达式比较后已经自增了一次(a>b),又因为 i 大于 j,所以会输出 i 与 j 比较后i自增的值,输出值后 i 又进行了一次自增,导致的结果就是 i 与 j 的差值从原来的1变成了2 (预处理情况如下图)#define,处理在程序的预处理阶段,占用编译时间,优点:一改全改,缺点:不检查语法,只是单纯的宏体与宏名之间的替换。注:typeof(x)函数可以获取变量x的类型。

2023-10-21 18:14:42 43 1

原创 Linux C 之 常量-整型、实性、字符、字符串

define,处理在程序的预处理阶段,占用编译时间,优点:一改全改,缺点:不检查语法,只是单纯的宏体与宏名之间的替换。由单引号引起来的单个的字符或转义字符,如 'a','b','\t','\n'整型常量、实性常量、字符常量、字符串常量、标识常量。由双引号引起来的一个或多个字符组成的序列。在程序执行过程中值不会发生改变的量。

2023-10-21 17:29:23 52 1

原创 Linux C 之 二进制及数值类型的存储(数据类型、运算符和表达式)

错误原因:因为float类型的值无法精确到某一个数值,如0.9999999或1.0000001在计算机语言中都可以认为是1。else if(fabs(f-0)

2023-10-21 17:20:22 51 1

原创 Linux C 之 编程注意问题

指令查看上一条指令的执行状态,如果没有return 0 ,旧的编译器会返回最后一条函数的返回值,但C99标准编译器环境下会默认补上return0;出现段错误,执行指令 gcc hello.c -Wall 展示所有警告,然后将警告解决,段错误大概率会被解决。如果调用的函数没有包含头文件,可能会将函数的返回值默认为int型,导致变量类型不匹配的错误。return 0 中返回的0是给父进程看的,main函数的父进程是shell。return 0意为结束当前函数,可用。3.声明部分+实现部分。

2023-10-21 17:18:44 51 1

原创 Linux C 之vim与gcc的使用

make后面的hello相当于gcc hello.c -o hello 中所生成的目标文件,好处是避免出现 gcc hello.c -o hello.c 这样源文件被覆盖的错误。gcc -E hello.c > hello.i (>号为重定向)make hello 等于gcc hello.c -o hello。vim ~/.vimrc(家目录的vimrc针对对自己有效)C源文件——预处理——编译——汇编——链接——可执行文件。为vim的配置文件,针对所有用户有效。然后上网搜索配置vim配置脚本与快捷键。

2023-10-21 17:14:59 47 1

原创 基于STM32F103C8T6的DMA直接存储器存取

DMA

2022-11-22 12:42:02 1941 1

原创 基于STM32F103C8T6的IIC通信协议及硬件通信和软件OLED温度显示项目

I2C通讯

2022-11-03 16:50:08 5744

原创 基于STM32F103C8T6的超声波与舵机综合应用的垃圾桶项目

舵机与超声波

2022-10-29 20:04:02 530 1

原创 基于STM32F103C8T6的超声波测距应用

STM32超声波

2022-10-29 19:44:57 9837 15

原创 基于STM32F103C8T6的系统定时器SysTick配置LED灯闪烁

系统定时器SysTick

2022-10-27 23:08:28 1747

原创 基于STM32F103C8T6的端口重映射及定时器输出PWM控制

PWM控制舵机

2022-10-27 15:04:01 5364

原创 基于STM32F103C8T6的通用定时器中断控制LED的闪烁

定时器中断

2022-10-24 23:01:19 2557

原创 基于STM32F103C8T6的USART1串口的中断接收

中断

2022-10-24 22:00:24 3648

原创 基于STM32F103C8T6的EXTI外部中断感应灯

STM32F103C8T6EXTI外部中断感应灯

2022-10-18 14:39:15 599 2

原创 基于STM32F103C8T6的振动器控制继电器实现控制灯的亮灭

震动传感器与继电器联合使用

2022-10-16 10:50:52 2114 2

空空如也

空空如也

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

TA关注的人

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