自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 LeetCode 热门100题-环形链表II-不熟练

可以假设存在这么一个m,那么就会有等式(L+S+m*C)*2=L+S+k*C,整理后有L+S=(k-2*m)*C,假设L+S不为0(也即是说,假设节点入口到头节点之间的距离不为0,S也不为0),那么可有k-2*m>0,又k和m均为整数,所以k>=3.这里用n代替k-2*m。所以回到最开始,2*(L+S)=L+S+C*k。假设头节点与入口节点之间的距离为L步,从入口到相遇节点的距离为S,环的总长度为C,那么满指针走过的步数为L+S,而快指针走过的距离为L+S+C*k,其中k>=1。,则在该链表中没有环。

2025-03-06 14:25:47 280

原创 四、基于stm32控制编码器电机的PID控制+PID调参

那么参看我之前做的一个图,三个不同颜色的框分别代表三个层级的PID控制,并且上一级的PID控制输出直接对应下一级的输入,就像初中物理的串联电路一般。那么从最左侧到最右侧的MOTOR结束,习惯上把他们称为外环,中间换以及内环。那么还可以看到三个框的名字分别是位置环(Position loop PID caculation)、速度环(Speed loop PID caculation)和电流环(Current loop PID caculation)。

2025-03-05 11:17:04 2248

原创 LeetCode 热门100题-环形链表

链接:https://leetcode.cn/problems/linked-list-cycle/solutions/1999269/mei-xiang-ming-bai-yi-ge-shi-pin-jiang-t-c4sw/如果有环的话,那么兔子和乌龟都会进入环中。这时用「相对速度」思考,乌龟不动,兔子相对乌龟每次只走一步,这样就可以看出兔子一定会和乌龟相遇了。哈希集合就不用多说,挨个将节点插入集合中的同时,查询集合中是否有当前节点。链表中有一个环,其尾部连接到第二个节点。,判断链表中是否有环。

2025-02-28 16:25:04 278

原创 LeetCode 热门100题-回文链表

若链表的节点个数为奇数,比方说n=2*k+1,在最后一个节点最后因为还有NULL的存在,所以从头节点至NULL节点一共为n=2*k+1步,所以快指针走k步后就正好指向最后一个节点,那么满指针则指向第k+1个节点,其实也就是最终间的节点。相应的解决方法有链表逆转和栈,当找到中间节点后,如果是链表逆转,则将右边的链表进行逆转,然后比对两条链表的节点值是否完全一致。若节点个数为偶数,n=2*k,当快指针指向NULL时,一共走了k步,此时满指针指向第k+1个节点,也就是中间的右边的节点。

2025-02-28 16:17:56 180

原创 LeetCode 热门100题-相交链表

假设A的节点数为m,因为在节点末尾有NULL节点的存在,所以遍历完A需要走m步,那么在相交节点前方一共有x个节点,也即是说从头节点走至相交节点需要x步。首先让a指针开始遍历,当其从B的头节点走到相交节点后,它一共走了m+y=n+x步,那么让b走同样的步数(n+x),会发现b此时也指向相交节点。:当a指向NULL后,改变其指向为B的头节点,类似地,将b指向A的头节点,再顺序遍历。当然如果x=y,也可以推出m=n,也即是说A和B等长,且相交节点在A,B中的位置相同,那么a,b都只需走x步,就可以指向同一位置。

2025-02-28 14:42:11 471

原创 LeetCode 热门100题-搜索二维矩阵 II

如下图所示,我们将矩阵逆时针旋转 45° ,并将其转化为图形式,发现其类似于 二叉搜索树 ,即对于每个元素,其左分支元素更小、右分支元素更大。因此,通过从 “根节点” 开始搜索,遇到比 target 大的元素就向左,反之向右,即可找到目标值 target。链接:https://leetcode.cn/problems/search-a-2d-matrix-ii/solutions/2361487/240-sou-suo-er-wei-ju-zhen-iitan-xin-qin-7mtf/

2025-02-27 17:56:21 469

原创 LeetCode 热门100题-旋转图像-有错误

对于一时想不到的方法记住就是了,就像前面有一个数组向右轮转k个位置的题,正常确实不容易想到用两次reverse函数的用法。旋转图像,这意味着你需要直接修改输入的二维矩阵。请你将图像顺时针旋转 90 度。使用另一个矩阵来旋转图像。

2025-02-27 16:58:00 279

原创 LeetCode 热门100题-矩阵置零-有错

for循环遍历数组,在有零的位置将对应行及列设置为0以作为标记,再根据标记将整行或整列均设为0;对第一行和第一列为0的情况单独处理。,则将其所在行和列的所有元素都设为。经过做标记和处理后就是上图的效果;的矩阵,如果一个元素为。:假设第一行第一列中没有0。:假设第一行中有元素0。处理后就是上图的效果。

2025-02-27 16:11:43 397

原创 LeetCode 热门100题-三数之和

要找到数组中符合要求的三个数其实并不难,无所谓就是先定住一个指针i,使 i 作为for循环的 作用因子进行逐个遍历,同时在for循环内部再使用一个循环,设计两个指针left和right将i以外的所有位置都遍历一遍,同时避免i=left,i=right,left=right的任一情况发生。为了避免重复,需要对重复元素跳过,而不能删除(否则如示例中的-1+-1+2的结果将会被误排除),而为了实现更高效的跳过操作,可以首先对所有元素进行排序操作。不同的三元组是 [-1,0,1] 和 [-1,-1,2]。

2025-02-13 18:17:47 203

原创 LeetCode 热门100题-最长连续序列

首先从给定的nums中找到一个连续序列的起始值,可以是最大也可以是最小值。顶一个一个unordered_set<int>集合变量num_set,并将nums容器的.begin()和.end()迭代器传入num_set进行初始化构造,实际也是将所有num的元素传入集合中。num_set.count(num - 1))判断num_set中是否存在num-1,.count迭代器和find类似,都是查询是否存在该元素,只不过使用find时,若不存在则将返回.end()迭代器,而count返回的是0。

2025-02-12 16:38:50 274

原创 LeetCode 热门100题-字母异位词分组

比如经过前面的代码,那么anagrams中元素的存在形式可能是这样的 [{abt,["bat"]},{ant,["nat","tan"]},{aet,["ate","eat","tea"]}],那么每一次遍历pair.second就对应着["bat"]、["nat","tan"]、["ate","eat","tea"]这几个容器。,按照键:sortedstr往哈希表中插入元素str,其实此时sortedstr也就是str所对应的排序好后的键,string sortedstr = str;

2025-02-12 15:36:18 852

原创 LeetCode 热门100题-两数之和

假设输入的nums里包含2(i=1)和7(i=5),target为9,当使用for循环遍历2时,已经讲nums[1]=2这个键存放入numMap中,而遍历到7时,会计算complement=2,查找2是否存在于numMap中,如果存在,则直接返回{numMap[complement], i}这个向量,其中numMap[2]=1,此时i=5,所以结果容器vector中接收到的是{1,5};,那么numMap中键:1对应的值就会更新为3,也即此时numMap存在{1,3};整数,并返回它们的数组下标。

2025-02-12 14:45:41 170

原创 三、编码器采集数据优化

之前的代码采集到的电机旋转速度有一些问题第一:数据不稳定第二:数据准确性也值得怀疑这里需要进行优化参考:Bzhan 尚硅谷平衡小车项目电机速度采集及显示以及这位博主的文章。

2024-11-06 17:29:54 1221

原创 二、stm32+spi驱动lcd+电机数据采集及显示

首先这是一个市面上常用的一种LCD屏幕,虽然不大,但是对于做简单的显示任务而言,已经足够了。除了这一款常用的LCD屏以外,还有一种0.96寸的OLED屏幕,不过那款屏幕需要用IIC方式驱动,而且屏幕面积也实在太小,个人不喜。不过其实那块屏幕其实相较本款LCD而言其实有很明显的优势:引脚数量少。因为整个实验是以STM32F103C8T6为核心来开发,这款板子引出来的引脚数量少,所以那款OLED屏幕其实更适合本实验。串行外设接口(SPI)允许芯片与外部设备以半/全双工、同步、串行方式通信。此接口可以被配置。

2024-10-31 20:09:18 2155

原创 一、stm32+TB6612+PWM+电机驱动

首先stm32由于引脚耐压特性等缘故,标准IO引脚的输入电压的输入范围为-0.3v-4.3v(VDD的最大电压为4v)、而其实耐压引脚的电压最高值也仅仅是5.5v,而一般stm32使用VDD引脚向内部供电、供电电压也一般小于或等于3.6v,目前大多数的系统板都是3.3v(这个数字是有说法的,感兴趣可以去查),即使使用5v引脚供电,在引脚真实进行负载时,实际电压可能下降至2、3v,这个驱动能力对于直流电机而言是远远不够的,目前一般的电机(做小实验等级)的电压大多是5v、12v、24、36v等,也因此想要让电机

2024-10-27 01:01:31 3789

原创 STM32F103C8T6+TB6612+直流电机PID控制

因后期需要使用32单片机控制直流电机做实验,实验需要对电机的精度、响应以及稳定性有一定的要求,但是目前有两个问题:1、考虑使用的电机有点贵,不能直接购买;2、PID控制思路仍不明确。所以假借这几个模块先做个实验试试,为了节省开发时间,本次实验采用HAL库进行开发。实验过程用到的模块包括:STM32F103C8T6单片机、TB6612FNG电机驱动模块、直流电机(带霍尔编码器,精度一般)、TFT128*128LCD屏显示模块、8v电源模块。

2024-10-25 14:02:23 960

原创 DMA+Usart1的stm32f103收发实验-接收不定长数据

这个实验的时间比上一篇笔记早,非常粗糙,但是能用。板子是淘宝上买的那种40米左右的f103rct6的板子,根据上的内容写的,原作者应该是这位佬有些用不上的代码,没有删除,运行出错仅需删除无用代码即可运行。

2024-09-04 16:35:31 514

原创 stm32f407实现DMA+串口中断接收不定长数据实验

学习csdn上大佬教的方法,实现DMA+串口通信

2024-09-04 16:15:48 2694

原创 简单的串口接收实验——stm32学习——f407

刚从f1的板子更换到f4,本想着之前写过的东西换一个板子复现会很简单,没想到也花了我一天时间,原因有二:f4在有些地方多少还是有点不同的;之前学f1写的程序严格来说不能算是自己写的,大部分的思路都是大佬们的。stm32的串口收发步骤无非就是那四步:配置引脚gpio;配置中断;配置串口;编写发送和接收处理函数。

2024-08-29 20:37:55 2165

原创 博客摘录「 ap、mAP多标签图像分类任务的评价方法」2024年5月16日

自学笔记

2024-05-16 16:40:03 396

原创 用C++生成一个不重复随机数 数组

自己编写一个适用初学者的随机数数组生成函数

2024-05-01 23:48:02 1569 2

四、基于stm32控制编码器电机的PID控制+PID调参

四、基于stm32控制编码器电机的PID控制+PID调参

2025-03-07

四、基于stm32控制编码器电机的PID控制+PID调参

四、基于stm32控制编码器电机的PID控制+PID调参

2025-03-05

四、基于stm32控制编码器电机的PID控制+PID调参

四、基于stm32控制编码器电机的PID控制+PID调参

2025-03-05

空空如也

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

TA关注的人

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