自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 传输线上的信号速度与阻抗无关,主要由频率决定

导体中电子移动速度很慢(约1cm/s),但信号传输速度取决于电场变化速度(接近光速)。信号传播速度由传输线周围材料的介电常数决定,与导体电阻基本无关。在FR4基板中,信号速度约为6英寸/纳秒(15cm/ns),由此可计算走线时延(6英寸走线约1ns时延)。该特性对高频电路时序设计至关重要。

2025-05-26 23:40:22 393

原创 自举电路的理解与应用

自举电路是一种通过使用自举升压二极管和电容等元件,将电容放电电压与电源电压叠加,从而实现电压升高的技术。这种电路广泛应用于电源管理,尤其是在MOSFET驱动的DC-DC转换器和开关电源中。自举电路的核心在于自举电容的使用,它能够在MOS管导通时自动提升栅极电压,确保MOS管保持在饱和导通状态,从而有效管理功率转换。例如,在LMR16006异步BUCK芯片中,自举电容连接在SW和FB引脚之间,用于驱动内部MOSFET。自举电路的设计利用了电容电压不能突变的特性,确保在不同工作状态下维持稳定的电压差,是电源管理

2025-05-10 12:37:20 954

原创 二极管的动态特性

二极管的单向导电特性受PN结结电容影响,导致存在反向恢复电流,其反向恢复时间Trr决定了二极管的适用频率。低频电路可使用普通整流二极管如1N4007(Trr在ms级别),而高频电路需选用Trr小的二极管如1N4148(Trr为4ns)。1N5819肖特基二极管(Trr约10ns)也适用于高频电路。不同二极管的正向压降、耐压和电流能力各异,需根据具体应用场景选择。

2025-05-08 21:33:16 297

原创 【备赛】eeprom

EEPROM即电可擦可编程只读存储器,属于非易失存储芯片。它能电擦除、多次编程,支持字节级操作。掉电后数据不丢失。蓝桥杯嵌入式的eeprom使用AT24C02,使用IIC通信协议。驱动的函数官方已经写好,我们只需要移植并使用就可以了。

2025-04-07 19:54:08 256 1

原创 【备赛】蓝桥杯实现多个LED联合控制

使用定时器,每隔0.1秒进中断,去判断是否符合你的条件,如果符合条件,就亮,否则灭。在一个if里面,两个条件一起判断,执行的内容也混一块。具体逻辑参考以下代码。

2025-04-06 22:37:39 190

原创 【备赛】蓝桥杯嵌入式实现led闪烁

你要实现某条件下,led闪烁,就需要设置一个标志位,等到他条件满足的时候,在while循环里面就一直不断地关闭led。由于while循环执行的更块,所以,每隔0.1s就会进一次中断,也就是每0.1sLED会亮一次。由于蓝桥杯的板子带有锁存器,并且与lcd屏幕有冲突,所以这个就成了考点。首先来解决与lcd屏幕冲突的问题,把我们所有用到的lcd函数改装一下。目的是在每一次调用LCD相关的函数时候,把引脚的状态恢复为原态。与此同时,开启定时器,在中断回调函数里面不断开启。//满足某条件,就开启TIM1。

2025-04-06 22:31:24 439

原创 【备赛】使用定时器的脉冲捕获功能,测量输入到该引脚的信号频率

这里用TIM17的Channel1,即PA7来实现脉冲捕获功能。要先开启这个时钟(捕获中断模式)这个是计算公式,具体原理略。然后重写中断回调函数。

2025-04-06 21:25:33 199

原创 【备赛】使用ADC测量电压、占空比

ADC可以计算出模拟电压的值,(逐次逼近法)。我们可以用这种方法得知实时的某个引脚的模拟电压值。比如 一个引脚输出pwm的值,我们使用ADC就可以计算出它当前的模拟电压值。(需要用线链接)比如你用PA1引脚输出pwm,再用PB15作为ADC的IN,那就得把这两个接上。把信号传过去。

2025-04-06 21:07:58 271

原创 【备赛】遇到的小问题-1

但是在调试的时候发现,percentage的值只能更新一次,但是adc_value的值是不断变化的。这是因为,在lcd_show()函数实现的开头赋值的时候,没更新adc_value的值。但是会发现percentage6,percentage7的值总是0.想实现的功能是,通过ADC实时测量某引脚的电压及其占空比。同样的在while循环里面不断更新这两个占空比的值。之前一直没想到小数的问题(太久不写代码了,悲).在开头加上这个函数重新更新一遍就好了。实际上面的过程我都是用函数实现的。首先我定义了这几个变量。

2025-03-19 00:01:43 219

原创 【备赛】stm32如何实现定时器延时/解决定时器中断刚开启就进中断的问题

背景是我想要按键按下之后,开启定时器,此时开始计时,计时5秒后执行操作。相当于想起到一个延时的作用。但是问题是,我刚按下就给我操作执行了,这不是我想要的延时效果。

2025-03-07 13:18:37 561

原创 【备赛】串口解包uint8_t转换成int类型

串口通信之间发送和接收的数据都是uint8_t类型的,所以如果要使用串口发送来的数据就要将其转换成int/char类型。发送“123-456”,我想要使用其中的123和456。使用DMA模式的串口。这里将介绍如何转换成。

2025-03-07 12:56:04 420

原创 在绘制原理图的时候,TYPE-C的CC引脚为什么要接下拉电阻?

根据 USB-IF 标准,Type-C 接口的 DFP(主机)和 UFP(设备)需通过 CC 引脚的上拉 / 下拉电阻组合实现角色识别、方向检测等功能,下拉电阻是规范中的必要元件。CC 引脚通过不同阻值的下拉电阻(如 Ra、Rd)与主机通信,协商供电能力(如 5V/3A 或 USB PD 协议支持的更高电压电流)。下拉电阻的存在是协议通信的基础。当多个设备或端口连接时,下拉电阻确保 CC 引脚在无主动控制时处于确定状态,防止多个上拉或下拉电路导致的电平冲突。,是 Type-C 接口正常工作的关键设计。

2025-03-05 11:18:17 1208

原创 【备赛】按键消抖+长短按键区分

周期性检测 → 记录时间戳 → 超时后确认 → 处理释放。用的时候就写Delay(5000);系统无法响应其他任务(如屏幕刷新、通信)这是一种非阻塞式的方式实现,比较不错。:在等待按键释放时,CPU 被完全占用。在 72MHz 的 STM32 上,在 16MHz 的 AVR 上,约。一般我会先自己写一个小延时函数。若按键被意外卡住,程序将永久死锁。:远小于按键消抖所需的。的方法来实现按键消抖。只要多增加一层判断就行。

2025-02-26 23:36:00 385

原创 【备赛】LCD用法

比赛时官方会给出例程,找到里面的lcd.c ,lcd.h ,fonts.c 。文件,按照之前的方法放进自己的项目中,本文主要说LCD的代码层用法。2.lcd显示写一个函数lcd_show,然后放在while里面一直跑。需要注意的是lcd的屏幕是10*20的,10行,20列。 3.lcd高亮显示比如有三行,作为选项,那就可以设置一个标志位,让它在 0 1 2 之间不断变换,再根据不同的值来用 if 语句分情况讨论。标志位的迭代方法如下:每切换一行高亮(实际上使用按键进行切换的)就执行

2025-02-26 10:37:46 255

原创 【git报错解决】

在原有文件进行修改,添加空格或者添加空行都可以。

2025-02-25 11:42:14 518

原创 【硬件电路设计】数字地和模拟地分离的办法

看下图,有三部分电路,假如1是数字信号电路,2是模拟信号电路。数字信号只有0和1之分。而模拟信号是一条不断震荡的周期性曲线。如果像下面这种把两种电路混合在一起 ,再接地。因为PCB的导线是靠铜箔实现的,电阻不可能为零,这就会出现分压的情况。当数字电路部分出现不稳定或者其他意外情况就会干扰到模拟电路的部分。比如说1号数字信号电路故障导致A点的电压不是0V,那就会应影响B点,导致整个2号模拟信号电路 的GND部分不是0V,可能会信号紊乱,被噪声干扰。

2025-02-25 10:24:57 921

原创 【备赛】在keil5里面创建新文件的方法+添加lcd驱动

因为在软件里面创建出的是在MDk文件那里面的,实际上是不存在你的新文件夹里的。这个到时候 比赛官方会提供的 我们只需要复制过来使用即可。

2025-02-24 23:12:16 473

原创 【备赛】点亮LED

led前面有锁存器,这是为了防止led会受到lcd的干扰(lcd也需要用到这些引脚)。首先要在stm32CubeMX里面配置PD2为高电平,目的是打开锁存器。每次想要对led操作,就需要先打开锁存器,再执行操作,最后关闭锁存器。然后配置PC8-PC15都是高电平,默认刚上电是关闭的。这里需要注意的是,引脚配置为低电平时,LED才会点亮。这就是你刚才配置的那个 锁存器和PC8-PC15。这样LCD无论如何操作也不会对led造成干扰。这是截取的一小段代码。

2025-02-24 22:48:28 552

原创 【备赛】串口不定长数据的收发+多文件编写+两文件之间互通变量

从这篇文章开始,采用分文件编写代码的形式,简洁方便。headfile.h文件是把所有的头文件全部都写在里面,之后只需要在main.c中包含headfile.h文件即可fun.c文件 fun.c文件里面主要是写 变量 和 函数定义、 虚函数重写fun.h文件这个文件就是fun.c对应的.h文件,主要用于链接main.c和fun.c文件,使得他们之间的变量能够互通。在fun.c文件中声明变量,然后在fun.h文件中添加外部声明:即extern 某某。最后在main.c里面添加头文件就可以使用

2025-02-21 19:24:51 216

原创 SH、MX、GH、ZH、PH、EH、XH、VH 等系列端子线的区别与作用

JST(日本压着端子制造株式会社)的端子线系列(如SH、MX、GH、ZH、PH、EH、XH、VH)主要通过和等维度进行区分。

2025-02-08 07:34:53 5420

原创 RM裁判系统笔记

如题,下面是我了解了RM的裁判系统相关的笔记。第二张图片那里有问题。绿色的组委会使用字样错了,有一个串口是需要我们使用的的。

2025-01-22 15:19:03 185

原创 各类电机笔记

一些电机的常见型号,包括达妙,领控,大疆。

2025-01-22 15:15:36 139

原创 【C++】C++应用案例-记账本

项目的需求是实现一个以easyx为基础的图形化界面的简单的个人记账本。同时也作为我的C++课程设计,这也是我刚开始学C++就想做的事情,为自己写一个记账软件,因为我的记账方式比较独特,是我自己设计的,在网上没有找到相似的模板记账本,或者什么软件,所以萌生了这个想法。这个课程设计也算是给我一个机会来完成这个最初的想法。(虽然现在它也稍显稚嫩)。一些重要的函数都已说明,上面的代码基本包括了我的所有工程代码。通过这一次的课程设计

2025-01-14 18:11:44 531 5

原创 stm32的HAL库中最好不要用HAL_DELAY的函数延时

总之,我认为HAL_DELAY一般是不适合使用在做智能小车上的,因为他会占用定时器的资源(对于stm32来说,定时器资源本来就少),中断定时器原本的服务,设置优先级不好处理。而且阻塞式的延时,我感觉不好。依赖于 SysTick 定时器,在一些对时间精度要求极高的应用场景中,可能需要考虑 SysTick 定时器的计数频率以及系统的负载等因素对延时精度的影响。如题,之前做智能小车的时候,使用了HAL_DELAY,直接给我小车干停转了。基于系统滴答定时器(SysTick)来实现延时的。

2025-01-09 22:09:52 510

原创 LM2596S-ADJ降压芯片绘制12V转5V PCB

记录学习。如题,这一版我是直接照着数据手册画的,第一次实现可以正常使用的DC降压(BUCK)电路,觉得很有意义,故写一下博客。难度不大,直接抄就可以。这里面的示例给的很清楚,包括取值和公式,除了上面的CFF。CFF的取值公式是:这里的fc是补偿网络的穿越频率,一般取开关频率的 1/5 或者 1/10。LM2596S的开关频率是150kHz。我取了1/5,就是30kHz,R2跟上面数据手册给的示例上的一样,就是反馈电阻的值。

2025-01-09 15:47:36 1902 3

原创 C++练习题之计算天数

然后写了循环,i 从 1 开始 到 你输入的月份。定义一个结构体变量用以记录一个日期(包括年,月,日)。输入一个日期,计算该日是本年的第几天。因为i是当前月份,那么要加的 “整块的月 的 天数” 就 必须是你前一个月的所以 就要。,因为给1 月份就会出现0% 2 = 0的情况,这显然是我们不需要的。这里“整块的月 的天数”指 30 31 29 28这类的。输入日期(包括年 月 日),是三个整数,以空格分隔。输入一个日期,输出该日是本年的第几天。输出该日是本年的第多少天。

2024-12-23 20:08:59 325

原创 用TPS54531绘制BUCK电路板

首先,这TPS54531 是一款非同步降压转换器芯片(异步)。这是BUCK的基本原理图,它是异步的。我们用这款芯片来控制MOS管的高频开关,以此实现降压。这里:Vi为24V,Vo为5V,开关频率为570kHZ,ΔVo = 50mV。负载电流是4.5V。f 是 芯片决定的,其它的量是我们想要设计出来的。二极管选用D_1N4007,压降为1.1V(1A情况下)

2024-12-16 22:14:30 707

原创 boost电路的同步和异步模式 及CCM、DCM模式 介绍

电路结构纹波。boost电路的同步和异步模式 及CCM、DCM模式 介绍。同步类型芯片。

2024-12-14 23:19:15 2881 1

原创 在GitHub上fork 别人的仓库 到 自己的仓库,clone到本地,处理后再上传回Github请求PR的过程

注意:一定要在你所需要的文件夹(你的本地仓库)里打开bash,并且跳转到你想要的分支上,再执行操作。这时候你可以去 Github上看看成功了没,应该会有显示你更改记录的。看到这个页面,就表明你提交成功了,接下来就是看原作者给不给你通过了。注意这里 仍然可能失败,因为网络的原因,可能链接不上Github。把你处理后的文件复制粘贴到这里面,或者更改里面原有的文件之后。首先到Github上找到你更改好的(之前fork的)工程,然后。clone成功之后,你的文件夹里面应该会有相应的文件了。

2024-12-11 19:37:51 788

原创 git的常用指令 以及说明

注意:初始化之后会在文件夹里面生成一个。git文件,其目录是隐藏的,可以调出来查看。首先需要把你的文件复制粘贴进来。意思是将暂存库里面的所有内容都 推送到远程库。这是add 和 commit 操作的示例。(1)将文件提交到暂存区:add。

2024-12-11 11:52:46 424 1

原创 C++中输入 不定长数据的方法

i 可以作为数组下标使用,也可以记录 元素个数,因为每执行一次循环,i+1,最开始又是零。当输入“enter” ,这个指令,即代表“\n”,或“EOF”(结束指令)。在未知 所需要输入数据的长度时 ,可以用while+getchar的方法。这里正常输入字符都是没问题的,while里面的内容都可以正常执行,所以执行了几次循环,就是输入了几个数据,就是 i。其实二者写其一即可,这里只是为了保险一些。

2024-12-01 23:24:29 741

原创 C++中 测算 不定长数据 的 长度 的方法

因为每个 字符数组 的最后 都 会被自动加上 ‘\0’ , 所以检测到 str[n] = '\0'时候,直接结束循环。即 每经过一次循环 就记录一次 ,所以就记录了str[]这个数组的长度。这里声明一个n,当作下标, 也可以 记录你输入的数据长度。用while 循环 ,每次循环 n+1,

2024-12-01 22:52:12 344

原创 矩阵旋转问题----指针基本应用

可以想到 用指针来做。用指针来 遍历 原数组 再把每次更新的指针 的数 赋值给新数组。然后 来看看规律 原先 横着的数 变为竖着放了 。可以分析出下面的规律

2024-11-24 10:49:20 992

原创 统计大小写字母数目

作者 X单位 曲阜师范大学。

2024-11-06 19:26:04 775

原创 求 最大公约数(辗转相除法)

【代码】求 最大公约数(辗转相除法)

2024-11-04 22:56:54 129

原创 C++ 逆序乘积式

【问题描述】若两个正整数的乘积,等于两正整数各自逆序后的乘积,则称其为逆序乘积式。编写程序读入两个正整数,然后判断这两个正整数能否构成逆序乘积式。假设两个正整数的乘积不会超过int数据类型的表示范围。【输入形式】从控制台输入以一个空格分隔的两个正整数。【输出形式】若两个正整数能够构成逆序乘积式,则输出两个正整数及其逆序的乘积形式,并且中间用一个等号相连;若不能构成逆序乘积式,则输出两个正整数及其逆序的乘积形式,并且中间用一个不等号相连。注意:输出的字符之间没有空格分隔。

2024-11-04 20:16:27 1747

原创 STM32实现串口接收不定长数据

STM32实现串口接收不定长数据,主要靠的就是串口空闲(idle)中断,此中断的触发条件与接收的字节数无关,只有当Rx引脚无后续数据进入时(串口空闲时),认为这时候代表一个数据包接收完成了,在此时中断,对数据进行分析处理即可。因为之前都是已知数据长度,但RXEvevtCallback用于接收不定长数据,所以用Size来确认到底有几个数据,来发送 与接收数据相同的 字节数。参数:指针地址,变量,(一次性能接受的最大长度,一般是数组长度)Ex 代表扩展,idle代表空闲中断,参数:指针地址,要关闭的中断。

2024-11-03 00:16:56 995

原创 stm32使用串口DMA实现数据的收发

全都改为HAL_UART_Transmit_(&huart2,DATE,2);参数配置一般默认即可。一、配置stm32cubeMX。要记得在main主函数中使用。只需要把上期文章里的。

2024-11-02 22:01:14 630

原创 串口中断处理逻辑,实现数据的收发

参数为:UART入口,指针(数组),数据长度,(因为采取中断的方式,所以不需要用等待时间 )这里也是一样的,把 接收与传递的函数全部加上IT,即可。普通的跟上期一样,注意不同的是:这里需要勾选NVIC使能。代码逻辑与上期基本相同。参数也都是少了一个 “等待时间”。

2024-11-02 18:42:56 226

原创 stm32使用串口的轮询模式,实现数据的收发

-----内容以b站博主keysking为原型,整理而来,用作个人学习记录。

2024-11-02 12:35:54 652

空空如也

空空如也

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

TA关注的人

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