自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 定时器外部时钟

外部时钟模式1和外部时钟模式2的区别在于,外部时钟模式1使用外部输入脚(TIx)作为计数器时钟的时钟源,而外部时钟模式2使用外部触发输入(ETR)或内部触发输入(ITRx)作为计数器时钟的时钟源1。代码中选择的是外部时钟模式2(TIM_ETRClockMode2Config函数)。TIM_GetCounter(TIMx)函数获取TIMx定时器的CNT值。PA0引脚是TIM2的ETR引脚,就在这个PA0引脚输入一个外部时钟。

2026-04-24 20:52:46 37

原创 输入捕获IC

(在对射式红外传感器实验中,用PWM信号作为信号源,比如对射式红外传感器计次,每来一个上升沿计次加1。再使用一个定时器,定一个1s的定时中断,在中断里,每隔1s取一下计次值,同时清零计次,为下一次做准备)ARR自动重装值,要设置大一些,防止计数溢出(ARR设置大,是避免下一个上升沿未到,计数器就溢出了)(TIM2定时器里设置了时基单元为1Hz,也就是1s产生一次中断,执行TIM2_IRQHandler中断函数,在1s内统计的编码器中的N的次数(分别采用外部中断,定时器中断 使用测频法。

2026-04-24 14:05:28 23

原创 定时器(TIM)定时中断 和 定时器外部时钟

TIM_InternalClockConfig函数给外设配置时钟,由于是时钟已经是默认初始化好的,所以可要可不要。时钟源选择:下面标记的6个函数。

2026-03-31 17:22:26 28

原创 对射式红外传感器计次 & 旋转编码器计次

第四步:配置EXTI,选择边沿触发方式,比如上升沿,下降沿或双边沿还有触发响应方式,可以 选择中断响应和事件响应。检测到B相位的下降沿 和 A相位是低电平时 : 正转 旋转编码器。检测到A相位的下降沿 和 B相位是低电平时 : 反转 旋转编码器。GPIO引脚配置上拉输入(IPU)模式,EXTI配置使用的是下降沿触发,第三步:配置AFIO,选择使用的这一路AFIO,连接到后面的EXTI。第一步:配置RCC,把上图涉及到的所有外设的时钟都开起来。

2026-03-30 17:16:46 60

原创 片上外设——定时器(TIM)模块————PWM参数测量

2026-03-15 14:53:12 27

原创 片上外设——ADC模块

2026-03-14 12:56:45 28

原创 入门动态规划题——斐波那契数列(力扣509题)

【代码】入门动态规划题——斐波那契数列(力扣509题)

2025-12-27 10:54:52 138

原创 不重复的三元组(力扣第15题,三数之和)

不重复的三元组(力扣第15题,三数之和):给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i!当nums = {-1,0,0,1}时,i指向-1,left指向第一个0,right指向1,进入if(num == 0)中,nums[left] == nums[left + 1]成立,left++,left等于2,然后再进行判断nums[left] == nums[left + 1]不成立结束循环,这个例子没什么问题;

2025-12-08 14:47:39 243

原创 力扣第7题 整数反转

在 C++ 中,intINT_MAXINT_MIN如果反转后的数字超过了这个范围,题目要求返回 0。代码中的逻辑 sum = sum * 10 + mod;是将当前的 sum 扩大 10 倍并加上新的个位数。一旦这一步计算结果超出了 int 范围,程序就会发生溢出错误(或未定义行为)。因此,我们需要在执行乘法和加法之前,就提前判断这一步操作是否会越界。

2025-11-29 12:13:25 372

原创 力扣第5题——找到 s 中最长的 回文 子串

暴力求解,超出时间限制。

2025-11-28 16:02:48 89

原创 STL初识(STL基本概念)

2025-11-28 16:01:53 105

原创 stack容器(不支持遍历)

2025-11-25 12:26:02 134

原创 容器String

2025-11-25 12:25:09 116

原创 deque容器——双端数组,中继器,缓冲区

2025-11-24 10:39:30 212

原创 力扣编号1262——找出并返回能被三整除的元素 最大和

本来我一开始写的是int a[nums.size() + 1] = {0};但造成编译错误,原因:这行代码在标准 C++ 中是非法的,因为它试图创建一个大小可变的数组并对其进行初始化。普通数组(也叫静态数组)的大小必须是一个编译期常量表达式。也就是说,数组的大小在程序运行之前就必须是已知的、固定的。下面代码中使用的是vector容器,vector 是 C++ 中用于动态大小数组的标准容器。它正是为了解决这类问题而设计的。因为我写的上面的数组直接定义的是a[40000]。可能会造成大量空间没有利用。

2025-11-24 10:38:51 149

原创 queue容器

2025-11-23 18:02:22 225

原创 力扣第三题(求不含有重复字符的 最长 子串 的长度。)双指针滑动窗口

与上面不同的是,第二个代码使用 unordered_set ,是因为它的插入、删除和查找操作的平均时间复杂度是 O (1),比 set 的 O (log n) 更快,更适合这个场景。

2025-11-23 18:01:48 87

原创 list容器

排序默认升序排自定义排序排序案例。

2025-11-22 09:50:59 103

原创 set容器(set和map容器只能用insert插入元素)

交换:insert返回的类型是pair对组,第二个second元素是表示插入元素是否成功

2025-11-22 09:50:32 193

原创 STL中算法调用时的参数类别+重载注意事项

2、而使用一些算法时,算法的参数列表中需要用到仿函数(也就是函数对象,匿名函数对象),需要写仿函数(也就是一个类,在类中重载operator(),返回值为bool类型的话即参数类型中有谓词)。参数什么时候带括号,什么时候不带,是根据函数的参数列表来的,如果使用的是仿函数,就要写括号写成匿名函数对象。如果使用的是普通函数的话,写函数名即可。3、所以说使用哪种算法时,要看参数类型是什么,比如像count算法,使用自定义数据类型的时候,需要重载operator==。例如:STL中的find算法。

2025-11-20 10:46:13 131

原创 map容器(元素为pair对组,key—value键值对)

交换:

2025-11-19 15:37:30 170

原创 力扣第二题(两数相加)

其实我感觉可能题目要求不太明确(既然给出来的测试用例中l1 = [0] , l2 = [0],那可能以为是一个结点且val = 0的链表),也有可能是我代码中哪个地方出错了。题目中并没有限制输入链表的长度。如果输入的链表非常长,比如有 20 个节点,那么它所代表的数字会超过。这其实就是暴力法,根据每一个链表的值不断累加到真实的值;类型的最大值(大约是 9e18)。的计算就会出错,导致最终结果完全错误。

2025-11-19 15:36:44 229

原创 deque容器(基本概念和构造函数)

2025-11-18 11:08:11 131

原创 注意事项,函数的声明前后顺序(set排序设置案例)

只能告诉编译器 “存在这样一个类”,但无法提供该类的具体实现(尤其是。(确保比较操作的 “只读性”)。容器在内部使用比较器时,会通过。引用调用,因此必须将比较器的。具体来说,编译器在解析。模板需要根据比较器的。

2025-11-18 11:07:50 323

原创 STL初识-vector存放内置数据类型

第三种。

2025-11-17 17:36:24 89

原创 STL初识-vector存放自定义数据

指针:

2025-11-17 17:36:03 101

原创 STL初识-容器嵌套容器

2025-11-16 16:29:13 126

原创 容器vector

2025-11-16 16:28:31 145

原创 vector预留空间

reserve。

2025-11-14 18:19:51 179

原创 vector互换容器

swap的收缩效果:

2025-11-14 18:05:01 108

空空如也

空空如也

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

TA关注的人

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