自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 STM32旋转编码器接口测速(TIM)

该实验用的是最小系统板和面包板,先上接线图:为什么选择PA6和PA7口呢,看张图:可以看到编码器接口的两个输入TI1FP1和TI2PF2来自定时器的输入捕获的两个通道TIMx_CH1和TIMx_CH2 ,所以在选择引脚时要选择能复用为某定时器通道1和通道2的引脚,可以再参考引脚定义:PA6和PA7确实可以被复用为定时器TIM3的两个通道TIM3_CH1和TIM3_CH2。

2024-05-05 09:47:22 901 2

原创 STM32单片机定时器输入捕获模式测频(TIM)

用的是最小系统板和面包板,接线图如下:该实验通过旋转旋钮编码器输出相位差为90度的一对方波信号控制PA0口输出的PWM方波频率,在PB6口接收输出的PWM方波,测出频率和占空比。

2024-05-04 20:56:33 2709 1

原创 STM32定时器输出比较模式呼吸灯(PWM)

我们要使用内部时钟作为时钟源通过配置PSC,ARR和CCR产生PWM方波。首先是开引脚时钟和定时器时钟,接着引脚初始化,引脚经过定时器TIM2,被复用为TIM2_CH1,所以输出模式要选复用推挽输出模式,引脚初始化完接着配置时基单元,接着运行控制使能。最后是输出比较通道初始化,根据TIM2_CH1选择输出比较通道1。

2024-04-28 12:13:35 401

原创 STM32单片机用对射式红外传感器作为外部时钟(TIM)

我们的路线是GPIO到ETR,到外部时钟模式2,然后是时基单元,配置完时基单元就配置一下运行控制,然后是中断输出控制,来使能中断,最后到NVIC,主要是根据响应优先级分配中断响应顺序,但是我们只有一个中断,配置起来很简单,以上配置顺序只是方便理解。

2024-04-28 09:41:02 335

原创 STM32内部定时中断(TIM)

ITRx涉及到定时器的级联,CNT一下的电路可以先不看,可以只看来自TIMx_ETR的时钟和内部时钟,若来自TIMx_ETR且不经过选择器的时钟要配置为时钟模式2,若想要配置内部时钟则要用对应的库函数配置为内部时钟模式。其中ARR和PSC的 值都是可以配置的,PSC最大可以对主频进行65536分频,但是配置时我们要写入的是预分频系数,他等于我们要分频的数-1,这就是为什么前面计算59.65s公式里出65535的由来。这个实验我们需要配置好定时器中断,每隔1s使变量自增达到计时的效果。

2024-04-27 19:08:32 995

原创 STM32单片机对射式红外传感器计次(EXTI)

触发信号从输入线进入,我们可以配置上触发升沿或下降沿触发寄存器来检测 输入的信号,符合条件后输出,来到和软件中断事件寄存器一起进入或门,或门输出的触发信号兵分两路,分为触发中断的信号和触发事件的信号,请求挂起寄存器检测到中断信号会挂起标志位,可以通过读取该寄存器判断哪个通道发生的中断,中断屏蔽寄存器和事件屏蔽寄存器相当于输出中断信号和中断事件发生的开关。跳过了OLED的介绍,因为OLED现只用于简单的显示,不做多赘述,注意接线。中断优先级的分组如上图所示,相同优先级的中断先后顺序由中断号决定。

2024-04-27 15:28:01 1094

原创 STM32单片机光敏电阻控制蜂鸣器

此实验需要让光敏电阻的信号灯熄灭时蜂鸣器响,当周围环境亮度低到一定值以下时,光敏电阻模块的输出信号,也就是PB13引脚的输入信号会由低电平变成高电平,当然光敏电阻模块检测的阈值是可调的,螺丝刀可调。我们只要让光敏电阻变成高电平时给蜂鸣器,也就是PB12高电平即可。既然要用到这些引脚,那就要初始化了。主函数部分,初始化蜂鸣器和光敏电阻后在while()循环部分用Get_LightInformation()函数检测光敏电阻的输入,根据不同的输入开关蜂鸣器。

2024-04-27 14:03:34 563

原创 STM32单片机按键点亮LED(无定时器)

这次的实验是用左边的按钮控制左边LED的亮灭,右边的按钮控制右边LED的亮灭,可以看到LED负极接到的是单片机的引脚,因此在初始化引脚时要选择低电平有驱动能力的模式,我们选择推挽输出模式。都初始化完毕就剩下主函数部分了主函数有个while()循环,我们可以在循环前将按钮和LED初始化,在循环函数内不断返回Get_Key1Num()和Get_Key2Num()的返回值,分别用两个变量接受,用不同的接受到的值控制LED亮灭。那么以上就是按键点亮LED了,以上内容经供参考,如果有更好的想法也可以去试试。

2024-04-27 13:42:24 556

原创 STM32单片机点亮一个LED

这样结构体的成员算是赋值完了,可以把他的地址写入GPIO_Init()函数了。最后我们可以从gpio.h找到GPIO_SetBits()函数,输入对应的参数就可以让对应的引脚置低电平,因为我们已经把PA1引脚配置成推挽输出模式了,所以这样就能点亮LED了。我们可以通过双击结构体类型来找到他的定义,这样就可以找到他的所有成员了。我们还可以如下图操作,找到成员允许的参数。初来乍到STM32单片机,在配置好环境之后终于可以写第一个代码了,点亮一个LED,我用的是面包板来完成的。

2024-04-27 11:02:03 718 1

空空如也

空空如也

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

TA关注的人

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