自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 STM32之DAC部分

首先通过左下角的译码器给ADDA、ADDB、ADDC写入数据就可以选择我们需要的通道了,一共有八位通道,选择好之后,通道选择开关就会打开对应的通道,把电压值读取到电压比较器的引脚1,而电压比较器的引脚2是接入到DAC的,这个DAC可以把一个数据转化为电压信号,然后电压比较器会不断对比两者的电压值,这个比较过程我们用二分法来实现,也就是说,这个八位的寄存器满程是256,先对半分为64,然后比较,如果寄存器数据大了就再对半分为32,这样依次二分,就可以最快找到电压值相等时的数据了。运算放大器有四个运用场景。

2024-10-08 20:24:36 202

原创 STM32入门之定时器编码器部分

由上图可知,编码器接口是接入了定时器的通道1与通道2,这里就把编码器的A相接到通道1,编码器的B相接到通道2,通过滤波、边缘检测后的TI1FP1与TI2FP2就会接到编码器接口部分,这里的编码器信号就会被接入到时基单元来驱动时基单元工作,CNT会根据A、B相的信号来具体实现CNT自增与自减,清零。我们一般使用模式3来测速,因为模式3的测量频率更高,精度也更高,同时,利用模式3,还可以很好的去除一些毛刺影响。还是一样的,我们先写驱动函数部分,我们使用定时器2的通道1与通道2。这里的编码器有3种工作模式。

2024-09-28 10:00:00 1684

原创 STM32入门之定时器输入捕获部分

观察以上框图得知,其实只是变动了右下角的一部分,也就是多了TI1FP2信号的输入,这里TI1FP2会捕获到上升沿与下降沿之间的CNT值,并锁存到CCR2中,但是这个捕获并不会触发计数器清零,所以计数器仍然会继续计数,直到下一个上升沿来临,CNT值锁存到CCR1中,计数器清零。通道1测频率,通道2测占空比。IC输入捕获,与输出比较一样也有有四个通道,分别与输出比较共用4个CCR寄存器,通过通道输入电平信号,我们可以检测到电平跳变,然后将CNT的值锁存到CCR寄存器中,实现测量频率,占空比,用于电机测速等。

2024-09-25 21:23:33 744

原创 STM32入门之定时器输出比较部分

首先来介绍一下舵机,舵机是一种根据PWM信号占空比来控制输出角度的装置,根据舵机型号的不同,驱动它转动角度所需要的占空比也不同,例如SG90型号的舵机,需要我们输入周期为20ms(50HZ),占空比为2.5-12.5%的PWM波才可驱动舵机转轴,当占空比是2.5%时,舵机输出角度就是-90°,当占空比是5%时,舵机输出角度就是-45°,当占空比是7.5%时,舵机输出角度就是0°......以此类推舵机有三个输入线,一根接电源,一跟接地,一根是信号线输入PWM波。反转时,给PA4置低电平,PA5置高电平。

2024-09-20 21:35:41 1006

原创 STM32单片机入门之定时器理论篇

假设这里我们要实现定时器2与定时器3的级联,就可以先初始化定时器3,使用主模式,把定时器3的更新事件映射到TRGO上,然后再初始化定时器2,选择定时器2的ITR2引脚作为外部时钟源,最后再选择模式为外部模式1,这样定时器3的更新事件就可以驱动定时器2的时基单元了,实现了定时器2与定时器3的级联。通用定时器除了最基本时基单元外,还多了内外时钟源选择,输出比较,输入捕获模块,编码器接口模块,不过值得一说,通用定时器的时基单元的计数器可以选择向上计数,向下计数,中央对齐计数模式。

2024-09-18 21:33:32 826

原创 STM32单片机入门之外部中断(EXTI)实践部分

当逆时针旋转时,A信号为上升沿时,B信号为高电平,A信号为下降沿时,B信号为低电平。,这里我们希望在中断函数里面实现Count_Sensor_Count自增的功能,每当遮挡一次,就加1,用Count_Sensor_Count++实现,这里还需要注意的是,因为我们使用的线路14是与10-15线路共同使用一个通道的,所以这里还需要判断一下是不是线路14的中断源有信号了,这里可以通过访问挂起寄存器,看看对应线路的标志位是否被置1了,如果被置1了,说明就是线路14的中断源有信号跳变了。那么就到了代码部分。

2024-09-15 20:27:07 887

原创 51单片机最小系统——复位电路分析

当直流电源给电容供电的瞬间,还是会有少量电子往极板上移动产生一定的电流,但是这个过程十分快速,可能是1/1000秒就充电完成了,这个速度是十分快的,我们无法观察到,因此才说电容隔直流,但是用交流电给电容供电的时候,因为交流电的方向是不断变化的,因此会不断产生充电、放电电流,这看起来就是“通”交流的,这里还有一点需要注意,如果交流电的方向变化速度没有充电速度快,那么即使是交流电供电,电容也是不“通”的,也就是说,当充电完成后,电压方向还没有变化,实际上就和直流电原理一样了,我们观察不到电流。

2024-09-13 21:22:46 732

原创 STM32单片机入门之外部中断(EXTI)理论框架篇

中断是单片机中一个重要的功能,我们可以利用中断功能来接受到许多突发性的信号,从而精确的捕获到引脚电平的跳变,这个特殊的功能可以减轻程序的执行负担,不用在主循环里一直做一些没有意义的重复判断,如果主程序一直在做这些重复判断,那么主程序就无法做其他事情了,因此,中断功能就出现了,用来帮助我们高效地完成信号检测与接收等功能。首先要了解中断的执行流程,在主程序执行的过程中,如果出现了中断源(例如电平信号跳变),那么就会停止运行主程序,转而跳到中断函数中执行中断函数,执行完后再返回主程序。(例如触发ADC转化)

2024-09-11 21:13:50 811

原创 STM32单片机入门之GPIO

(图源均来自与B站UP江协科大)

2024-08-30 15:21:16 807

原创 51单片机利用三极管驱动LED灯电路分析

也就是说,加了这个下拉电阻后,当我们停止高电平信号时,LED灯可以灵敏快速熄灭,反之,如果不加这个下拉电阻,当我们停止这个高电平信号,LED灯会因为信号干扰而持续点亮,然后才会慢慢熄灭,也就是不那么灵敏。当IO口输出高电平时,基极会产生电流,减去R1的压降后任然是大于0.7V(Ube导通的压降条件),又因为经过R3和LED灯的压降后,一般集电极的电压就为0V了,此时Ubc肯定是大于0的,也就是正偏导通的状态,此时两个PN结都是正偏导通的状态,也就是三极管工作在。这里的三极管可以形象的理解为一个。

2024-08-28 18:40:03 1415

原创 51单片机最小系统——复位电路分析

我查阅资料得知高于1.5的电压信号就算是高电平,低于1.5的电压信号就是低电平。在复位电路图中可知,当我们上电瞬间,电容会慢慢充电,此时的电压变化是0—5V,由于电阻和电容是串联的关系,所以电阻的电压变化就是电容的逆过程,即5—0V。所以电平信号就是高电平—低电平的变化,由于这款单片机的复位功能是高电平复位,所以在上电瞬间,就会复位一次。那么如果我们想实现复位多次呢?所以这里的RST电平信号可以当作是电阻的电压值信号我们只分析电阻的电压值变化就可以知道RST引脚的电平信号变化是如何的了。

2024-08-25 17:19:08 359

空空如也

空空如也

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

TA关注的人

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