自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 makefile(入门)

以上工程编译需要gcc *.c -o mytool,如果文件多,就不必每次都全部编译,接下来看makefile怎么写,更多解释请参考文首给出的链接。一个项目,包括main.c tool1.c tool1.h tool2.c tool2.h。如第一处$^指$(OBJS),即main.o tool1.o tool2.o。%:通配符,在同一句指同一个内容,如果有更多的.c编成.o,就可以只写这一句。将main.o tool1.o tool2.o定义成变量OBJS。$@:在上一句依赖关系中的目标文件。

2024-05-09 17:41:54 137

原创 C++进阶(2)-函数

作用:函数名可以相同,提高复用性函数重载满足条件①同一个作用域下②函数名称相同③函数参数类型不同或者个数不同或者顺序不同注意:函数的返回值不可以作为函数重载的条件//函数重载cout << "调用func" << endl;cout << "调用func(int a)" << endl;cout << "调用func(double b)" << endl;cout << "调用func(int a,double b)" << endl;

2024-04-16 14:53:47 827

原创 C++进阶(1)-内存四区及引用

代码区是共享的,共享的目的是对于频繁执行的程序,只需要在内存中有一份代码即可。④堆区:由程序员分配和释放,若程序员不释放,程序结束时由操作系统回收。注意事项:不要返回局部变量的地址,栈区开辟的数据由编译器自动释放。代码区是只读的,使其只读的原因是防止程序意外修改它的指令。由程序员分配释放,若程序员不释放,程序结束时由操作系统回收。堆区开辟的数据,由程序员手动开辟,手动释放,释放利用操作符。③栈区:由编译器自动分配,存放函数的参数值,局部变量等。由编译器自动分配释放,存放函数的参数值,局部变量等。

2024-04-01 14:31:07 761

原创 Linux配置环境变量

编写hello.c文件,编译生成hello可执行文件hello.c。

2024-02-01 08:56:56 206

原创 C语言主函数(参数)补充

C语言主函数(参数)补充。

2024-01-31 17:23:32 349

原创 Git入门

Git是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种项目。Git易于学习,占用空间小,性能极快。它具有廉价的本地库,方便的暂存区域和多个工作流分支等特性。其性能优于Subversion、CVS、Perforce和ClearCase等版本控制工具。附上:Git官网:Git在版本控制过程中,同时推进多个任务,为每个任务就可以创建每个任务的单独分支。

2024-01-28 18:42:17 1431

原创 Git安装详细步骤

Git详细安装步骤

2024-01-27 12:13:02 422

原创 STM32-ADC模数转换器

ADC(Analog-Digital Converter)模拟-数字转换器>ADC可以将引脚上连续变化的模拟电压转换为内存中存储的数字变量,建立模拟电路到数字电路的桥梁>12位逐次逼近型ADC(表示范围:0-2^12-1(4095)),1us转换时间(频率:1MHz)>输入电压范围:0~3.3V,转换结果范围:0~4095>18个输入通道,可测量16个外部和2个内部信号源>规则组和注入组两个转换单元>模拟看门狗自动监测输入电压范围。

2023-12-19 18:45:19 1282

原创 STM32-TIM定时器编码器

Encoder Interface 编码器接口>编码器接口可接收增量(正交)编码器的信号,根据编码器旋转产生的正交信号脉冲,自动控制CNT自增或自减,从而指示编码器的位置、旋转方向和旋转速度>每个高级定时器和通用定时器都拥有1个编码器接口>两个输入引脚借用了输入捕获的通道1和通道2。

2023-12-15 14:15:06 289 1

原创 STM32-定时器输入捕获

IC(Input Capture)输入捕获>输入捕获模式下,当通道输入引脚出现指定电平跳变时,当前CNT的值将被锁存到CCR 中,可用于测量PWM波形的频率、占空比、脉冲间隔、电平持续时间等参数>每个高级定时器和通用定时器都拥有4个输入捕获通道>可配置为PWMI模式,同时测量频率和占空比>可配合主从触发模式,实现硬件全自动测量。

2023-12-11 18:19:07 621

原创 STM32-TIM定时器输出比较

目录一、输出比较简介二、PWM简介三、输出比较通道(通用)四、输出比较通道(高级)五、输出比较模式六、PWM基本结构 七、PWM参数计算八、外设介绍8.1 舵机8.2 直流电机及驱动九、开发步骤十、输出比较库函数 十一、实验9.1 PWM驱动LED呼吸灯9.2 PWM驱动舵机9.3 PWM驱动直流电机

2023-12-10 18:09:34 334

原创 STM32-TIM定时器中断

TIM定时器中断

2023-12-09 16:55:40 342

原创 STM32-EXTI外部中断

STM32EXTI外部中断

2023-12-04 17:30:37 424

原创 STM32-OLED显示屏

OLED显示屏

2023-12-04 14:13:35 942

原创 STM32-GPIO

STM32GPIO

2023-12-02 21:54:28 336

原创 嵌入式操作系统

当一个突发事件(例如外部设备发送的信号, 计时器到期或紧急错误)发生时,CPU会暂停正在执行的任务,转而处理这个突发事件。处理完中断后,CPU会返回到原来的任务,从中断前的位置继续执行。在操作系统中,中断使得CPU能够在执行任务的同时,及时响应和处理紧急事件,提高系统的实时性和灵活性。系统记住上一个任务执行的进度,在下一个时间片回到这个任务的时候继续执行,而不是从头开始。系统切换任务的速度很快,导致每一个任务反应不过来,以为系统是为自己独有。规定固定的时间为一个时间片,在这个时间片里只专注于一个任务。

2023-11-21 15:35:18 147

原创 Linux-进程管理

一般来说,固定的用法就是:ps -ef 列出全部进程的全部信息。程序运行起来,被操作系统注册为一个进程,拥有独立的进程ID。>-f:以完全格式化的形式展现信息。语法:kill [-9] 进程ID。语法:ps [-e -f]>-9:表示强制关闭。>-e:显示全部进程。

2023-11-21 08:44:58 50

原创 Linux-基础知识

使用命令ifconfig,如无法使用,安装:apt -y install net-tools。在系统中创建软链接,可以将文件、文件夹链接到其他位置,类似windows系统中的“快捷方式”>-O:用于下载文件,当url是下载链接时,可以使用此选项保存文件。>-b:后台下载,会将日志写到当前工作目录的wget-log文件。一般来说,固定的用法就是:ps -ef 列出全部进程的全部信息。>格式化字符串:通过特定的字符串标记,来控制显示的日期格式。wget是非交互式的文件下载器,可以在命令行内下载网络文件。

2023-11-11 15:36:29 176

原创 Linux-用户与用户组,权限

用户名:密码(X):用户ID:组ID:描述信息(无用):HOME目录:执行终端(默认bash)>-d:指定用户HOME路径,不指定,HOME目录默认在:/home/用户名。>-r:删除用户的HOME目录,不使用-r删除用户的时候,HOME目录会保存。语法:chown [-R] [用户] [:] [用户组] 文件或文件夹。>-g:指定用户的组,不指定-g,会创建一个同名组并自动加入。表示将文件hello.txt权限修改为rwxr-x--x。表示将文件夹内所有内容权限改为rwxr-x--x。

2023-11-10 17:55:55 208

原创 Linux-vi/vim命令

在一般模式下,输入/后面加上要查找的内容,点击n查找往后匹配的内容,点击N查找往前匹配的内容。:%s/p1/p2/g 将文件所有的p1替换成p2,g是指全局。如果文件不存在则创建新的文件,存在则使用vi/vim打开。:%s/p1/p2/gc 替换时需要确认。

2023-11-10 15:36:38 131

原创 Linux-命令行命令

【.】表示当前目录,比如cd ./desktop表示切换到当前目录下的desktop目录内,和cd desktop效果一样。>【..】表示上一级目录,cd .. 切换到上一级目录,cd ../.. 切换到上二级目录。>参数2:Linux路径,表示要移动去的地方,如果目标不存在,则进行改名,确保目标存在。> -h(必须与-l同时使用):以易于阅读的形式,列出文件大小,如:K,M,G。>文件路径:表示要过滤内容的文件路径,可作为内容输入端口。>>:将左侧命令的结果,追加写入到符号右侧指定的文件中。

2023-11-09 18:02:07 229

原创 内存对齐(结构体大小)

内存对齐

2023-11-03 14:20:19 51

原创 数据存储方式(原码,反码,补码)

15 补码=反码+1=原码符号位不动,其余位取反+1 1111 0001。有符号数 +15 补码=反码=原码 0000 1111。有符号数 +15 反码=原码 0000 1111。无符号数 15 反码=原码 0000 1111。无符号数 15 补码= 反码= 原码。有符号数:+15 0000 1111。有符号数的首位是符号位(0正1负)

2023-11-01 19:13:34 134

原创 C语言内存四分区

data区:已经初始化的全局变量、静态变量、常量(单独划分出一个常量区)存放局部变量、函数形参、返回值(>4字节,

2023-10-25 18:10:42 293

原创 C语言const修饰指针变量

常量指针,指针常量

2023-10-23 15:32:33 72

原创 gcc编译过程

预处理阶段会将头文件展开、宏替换、条件编译、取消注释....将hello.c生成一个hello.i的文件(指令:-E)将hello.i生成一个hello.s文件(指令:-S)将hello.s生成一个hello.o文件(指令:-c)举例说明:hello.c编译生成hello.exe。将hello.o生成hello.exe可执行程序。汇编阶段:主要生成让机器识别的二进制文件。hello.exe是一个可执行程序。hello.i也是一个C语言程序。hello.o是一个二进制文件。hello.s是一个汇编文件。

2023-10-15 11:51:10 46

原创 C++项目-通讯录管理系统

通讯录最多存放1000人,实现功能:添加、显示、查找、删除、修改、清空联系人,退出通讯录。下面给出代码及部分注释。

2023-10-14 13:34:31 101

原创 C++-结构体做函数参数

C++-结构体做函数参数。

2023-10-14 13:27:34 51

原创 C++项目-结构体案例2

项目要求:将结构体数组中按年龄排序。

2023-10-14 12:33:05 46

原创 C++项目-结构体案例1

项目要求:3名老师,每名老师带5个学生。

2023-10-14 12:27:28 34

原创 C++项目-指针数组函数

项目要求:封装一个函数,利用冒泡排序,实现对整型数组的升序排序。

2023-10-14 12:24:02 28

原创 C++项目-求数组最大值

求数组最大值

2023-10-14 12:18:01 507

原创 C++项目-冒泡排序

冒泡排序

2023-10-14 12:16:44 25

原创 C++项目-敲桌子游戏

C++敲桌子游戏

2023-10-14 12:14:39 42

原创 C++项目-数组逆置

C++数组逆置

2023-10-14 12:11:54 344 2

原创 C++项目-求水仙花数

C++求水仙花数

2023-10-14 12:08:01 208

原创 C++项目-输出乘法口诀表

C++输出乘法口诀表

2023-10-14 12:02:05 343

原创 C++项目-猜数字游戏

C++猜数字游戏

2023-10-14 11:58:31 405

原创 判断计算机处理器的大小端

C语言判断字节序

2023-09-06 19:58:54 307

原创 交叉编译工具

交叉编译

2023-09-02 20:10:57 158

空空如也

空空如也

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

TA关注的人

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