自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 排序算法之堆排序

若干个元素序列{a1, a2, ……, an}满足则分别称为该序列{a1, a2, ……, an}为小根堆和大根堆从堆的定义可以看出,堆实质是满足如下性质的完全二叉树二叉树中任一非叶子结点均小于(大于)它的孩子结点。

2024-03-13 15:11:28 657

原创 逻辑运算符的那些事儿

当获取到第一个操作数为假的时候,无论第二个操作数是真是假,都不会影响与运算符的运算结果,所以就不会获取第二个操作数的布尔值,如果第二个操作数是表达式的话,就不会运行该表达式。

2024-03-11 16:18:39 934

原创 Windows、Ubuntu虚拟机、开发板三ping测试设置以及uboot,系统镜像和设备树烧录

实现Windows、Ubuntu虚拟机和开发板三者之间的ping测试,其中涉及到uboot以及系统镜像的烧录。

2023-12-13 14:14:12 1228

原创 虚拟机Ubuntu网络设置

注意:地址要和上一步桥接的网络ip处于同一个网段(就是前三个数一样,最后一个数不一样),子网掩码、网关和DNS要设置成完全一样(踩坑,DNS不一样一直通信不了)。找到网络设置,可以看见一个网络(下图是完全配置好的情况,正常第一次只有一个网络),点击网络名字后边的齿轮,打开设置。点击IPv4,将其改成手动模式,设置其地址、子网掩码、网关和DNS。打开网络设置,选择网卡1,连接方式选择桥接网卡,名称就是自己Windows的网络。1)右键开始菜单 ,选择运行,输入cmd,点击运行,打开window终端。

2023-12-13 09:35:33 2835

原创 【ARM】链接脚本的编写以及踩坑记录

代码编译出来需要链接在指定的区域中,这些区域一般称为段。代码编译生成的文件一般都会包含四个段,分别是text段,data段,bss段,rodata段(下文会介绍各个段的内容),而链接脚本就是把所有编译出来的文件中的段放在对应的段中,下面是一个简单的链接脚本:

2023-11-15 11:38:04 245

原创 常用的ARM汇编指令

常用的ARM汇编指令

2023-11-10 16:00:22 464

原创 解决github上传大文件超过100M的问题

GitHub是我们常用的代码托管平台,但GitHub有一个限制,不能上传超过100M的文件。想要上传超过100M的文件,就需要借助Git LFS。

2023-09-20 15:19:41 1125 1

原创 C++引用(常量引用、左值引用和右值引用)

引用为对象起了另外一个名字,引用类型为引用另外一种类型。通过将声明符写成&d的形式来定义引用类型,其中d是声明的变量名:一般在初始化变量的时候,初始值会被拷贝到新建的对象中。然而定义引用的时候,程序把引用和它的初始值**绑定(bind)**在一起,而不是将初始值拷贝给引用。一旦初始化完成,引用将和它的初始值对象一直绑定在一起。因为无法令引用重新绑定到另外一个对象,因此引用必须初始化。引用即别名引用并非对象,相反的,它只是为一个已经存在的对象所起的另外一个名字定义了一个引用之后,对其进行的所有操作都是在与之

2023-08-25 16:27:15 163 1

原创 高级定时器与霍尔传感器的接口——BLDC无刷直流电机

笔记:三个输入信号中的任意一个变化,异或门的结果都会发生变化,从而触发复位,计数器清零,捕获到的值存放在通道1的捕获寄存器中,因为计数器每次都是从0开始计数的,那么捕获寄存器中的值就是一次换向的时间,BLDC驱动用的是六步换向方波驱动,那么就可以算出电机的转速了。笔记:库中可以设置为软件更新(CCUS=0,然后在换向后用软件产生一个COM事件),也可以触发更新(CCUS=1,既可以软件产生COM事件更新高级定时器的参数,也可以触发输入TRGI的上升沿更新高级定时器的参数)

2023-08-15 11:41:48 1162

原创 步进电机梯形加减速算法的实现

步进电机梯形加减速算法的实现

2023-08-09 16:44:08 479

原创 步进电机梯形加减速原理学习笔记

为了使得不出现丢步或者超步现象并且提高效率,需要使得步进电机先以固定的加速度达到目标速度,然后以这个速度运行,快到达目标步数时再减到最低速;整个过程是一个梯形的模型, 所以以它的数学模型命名的加减速算法。从模型中即可反映出算法的特点,数学模型中一共分为三个阶段,OA 加速部分、AB 匀速部分和 BC 减速部分。

2023-08-08 20:05:04 667 1

原创 定时器同步

TIMx定时器能够在多种模式下和一个外部的触发同步:复位模式、门控模式和触发模式。在STM32中,所有TIMx定时器在内部相连,用于定时器同步或链接。当一个定时器处于主模式时,它可以对另一个处于从模式的定时器的计数器进行复位、启动、停止或提供时钟等操作。

2023-07-18 21:03:22 1067 2

原创 定时器和外部触发的同步

TIMx定时器能够在多种模式下和一个外部的触发同步:复位模式、门控模式和触发模式。

2023-07-18 11:32:22 815 1

原创 STM32的CAN通信的收发库函数解读

当需要使用CAN发送报文时,先定义一个上面发送类型的结构体,然后把报文的内容按成员赋值到该结构体中,最后调用库函数CAN_Transmit把这些内容写入到发送邮箱即可把报文发送出去。

2023-07-11 14:00:14 3222

原创 基于STM32的CAN通讯的两种筛选模式

两种筛选模式用通俗的话来讲,标识列表模式就是把所有的ID放在一个表里,一个一个的去查,查到与标识的ID相同的报文选择接收,其他的报文不接受;(2) 掩码模式,它把可接收报文ID的某几位作为列表,这几位被称为掩码, 可以把它理解成关键字搜索,只要掩码(关键字)相同,就符合要求,报文就会被保存到接收FIFO。当掩码是1时,就表明要接收的报文ID就必须和存储的ID一致,当掩码是0是,就是不关心要筛选的ID这一位可以是0,也可以是1。筛选器的工作主要是筛选ID的长度和筛选模式决定的。

2023-07-06 19:36:19 763 1

原创 哈夫曼编码和解码

哈夫曼编码方法:1、统计字符集中每个字符在电文中出现的平均概率(概率越大,要求编码越短)。2、利用哈夫曼树的特点:权越大的叶子离根越近;将每个字符的概率值作为权值,构造哈夫曼树。则概率越大的结点,路径越短。3、在哈夫曼树的每个分支上标上0或1,结点的左分支标0,右分支标1,把从根到每个叶子的路径上的标号连接起来,作为该叶子代表的字符的编码。

2023-05-15 17:12:01 2099 2

原创 构造哈夫曼树(结构数组存储)

哈夫曼树的构建过程:对于给定的一组权重,首先将它们作为单独的树进行处理;然后从集合中选择两个权重最小的树,将它们合并为一棵树;同时,将新产生的树的权重设定为其两个子树权重之和。重复执行这一过程,直到最后只剩下一棵树为止,这棵树就是哈夫曼树。

2023-05-14 17:43:26 902

原创 FreeRTOS的内存管理方案

因为不允许内存释放,就不会产生内存碎片而导致系统崩溃,但是也有缺点,那就是内存利用率不高,某段内存只能用于内存申请的地方,即使该内存只使用一次,也无法让系统回收重新利用。1、 用于从不删除任务、队列、信号量、互斥量等的应用程序(实际上大多数使用FreeRTOS 的应用程序都符合这个条件)。2. 如果我们的应用程序中的队列、任务、信号量、等工作在一个不可预料的顺序,这样子也有可能会导致内存碎片。1. 可以用在那些反复的删除任务、队列、信号量、等内核对象且不担心内存碎片的应用程序。2、 具有不确定性。

2023-04-15 18:42:01 353

原创 while循环与for循环运行时间的比较

for循环与while循环运行时间的比较

2023-04-08 22:16:01 1478

原创 vscode里面终端输入带空格的路径时,路径无法识别的问题

当路径遇到空格时,就会终止识别,如图。可以看见Stack后面有一个空格,就会默认路径到此结束,后面的路径都不会被识别。将带空格的文件夹名字用双引号引起来就可以识别了。

2023-02-22 22:04:47 1363

原创 c语言单链表的创建(头插法和尾插法)

头插法:元素插入在链表的,也叫做前插法。尾插法:元素插入在链表的,也叫做后插法。

2023-02-18 20:18:30 17557 1

原创 Windows+Ubuntu双系统下卸载Ubuntu

Windows+Ubuntu双系统下卸载Ubuntu

2023-02-03 20:28:02 11012 6

原创 void类型的应用 && c语言如何比较数组

因为我们不知道要比较的两个数组的类型,那么我们就用void*指针来接收所有的类型,接收进来后,需要遍历对比大小,但我们不知道两个数组的类型,但是不管任何类型,在计算机里面存储的都是二进制数,所以只需要对比这些存储的二进制数是不是一样就可以,那么强制转换成char*类型,以一个字节为单位进行数组大小的比较,当所有的二进制数都一样,那么说明两个数组中的内容相同。首先void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据。右边的指针类型转换为左边指针的类型。

2022-10-16 19:22:29 607

原创 c语言指针应该这么学!

C语言的指针详解

2022-06-19 21:09:39 654 3

原创 c语言输出杨辉三角

杨辉三角,是二项式系数在三角形中的一种几何排列,中国南宋数学家杨辉1261年所著的《详解九章算法》一书中出现。在欧洲,帕斯卡(1623----1662)在1654年发现这一规律,所以这个表又叫做帕斯卡三角形。帕斯卡的发现比杨辉要迟393年,比贾宪迟600年。杨辉三角的每一位数都是上面两位数的和,如图: 用C语言可以对杨辉三角进行输出。程序如下:方法一:用两个一维数组来计算杨辉三角并输出方法二:用一个二维数组计算并输出杨辉三角......

2022-06-14 12:14:14 15028 1

原创 C语言求自幂数

如果在一个固定的进制中,一个n位自然数等于自身各个数位上数字的n次幂之和,则称此数为自幂数。例如:在十进制中,153是一个三位数,各个数位的3次幂之和为1^3+5^3+3^3=153,所以153是十进制中的自幂数。在n进制中,所有小于n的正整数都为自幂数,比如2进制中1是自幂数,3进制中1和2都是自幂数,4进制中1,2和3都是自幂数......根据自幂数的位数不同,其命名也不同,具体如下:一位自幂数:独身数两位自幂数:没有三位自幂数:水仙花数四位自幂数:四叶玫瑰数五位自幂数:五角星数六位自幂数:六合数七位自

2022-06-13 17:23:20 1207 1

c语言笔记(最基础的相关内容略过)

c语言笔记(最基础的相关内容略过)

2024-03-13

FreeRTOS内存管理方案(可免费下载)

FreeRTOS内存管理方案(可免费下载)

2023-04-15

C语言学习思维导图,c语言整体框架

C语言学习思维导图,c语言整体框架

2023-02-28

空空如也

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

TA关注的人

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