- 博客(5)
- 收藏
- 关注
原创 stm32(5):定时器输出比较
我们知道,CNT计数器是不断自增的,当达到最大重装值时计数清零并重新计数,输出比较模块有一个捕获比较寄存器(CCR),当计数值大于它时,置高电平(低电平),反之当小于它时,置低电平(高电平),具体信号变化取决于极性的选择,当极性取1或者0时,取对应的信号。输出比较的基本原理如下:通过比较CNT(计数值)与CCR(捕获比较寄存器)寄存器值的关系,来对输出电平进行置1、置0或翻转的操作,用于输出一定频率和占空比的PWM波形。舵机是有输入的要求的,在这个范围内,它会转到对应的、不连续的角度。
2025-01-16 23:09:24
462
原创 stm32(4):通用定时器结构
利用通用定时器,我们可以实现诸如输出比较(输出一段固定占空比和频率的方波)、输入捕获(读取输入信号的频率和占空比)、以及编码器接口(读取正交信号),我将在接下来的文章介绍这三种功能。通用定时器的核心仍然是基本定时器,即cnt计数器、最大重装值寄存器和预分频器等,外界有若干途径可以对基本定时器的部分进行输入,通用定时器也可以产生不同的输出。这一部分即为外部时钟源,可以作为基本定时器部分的输入,也可以作为从模式触发的输入。输入:内部时钟源、外部时钟源、上一个定时器的输出。这一部分即为上一个定时器的输入。
2025-01-14 22:08:20
243
原创 STM32(3):定时器、和定时中断和外部时钟
图中除了预分频计数器,还有一个预分频缓冲器,它是为了保证在一个计数周期还没结束时改变预分频值时,计数频率暂时不会改变,等到这个周期完成,下一个周期开始时再改变。从cnt外获得一个输入(比如的内部时钟),对其进行预分频,也就是将输入值/分频系数,输入也每秒10次,分频系数为2,那么进入计数器的输入计数每秒5次。不同定时器之间可以级联,用上一个定时器的输出作为下一个定时器的输入,可以实现极其大范围的定时计数。全部配置完成后,我们需要写一个中断函数,这个函数名和参数是库函数里已经存在的,需要直接使用。
2024-12-29 19:49:28
809
原创 stm32(2):OLED屏幕和外部中断
多个中断之间存在抢占优先级和响应优先级,抢占优先级高的可以在其他中断进行的时候嵌套中断。利用OLED屏和外部中断我们可以实现对外界的信号做出响应并将操作展现在屏幕上,若干传感器的信号可以及时地不占用cpu地被接受和响应。1、配置AFIO(复用输入输出口,其值为自选的GPIO子口),配置GPIO,选择一条线路作为复用输入输出口的输入。外部中断的触发模式分为上升沿响应触发和下降沿响应触发,以方波信号为例,方波的上升信号为上升沿,下降信号为下降沿。使用外部中断可以自发地及时的接受外界的变化并做出响应。
2024-11-30 23:33:06
788
原创 stm32(1)简介、寄存器和通用输入输出口(GPIO)
先打开(使能)APB2总线的时钟,随后定义一个专门用来配置GPIO的结构体(上图赋值为推挽输出,C0号引脚,50兆Hz)再用库函数GPIO-Init()函数配置对应的寄存器的实现GPIO的功能。函数来读取对应GPIO口的信号值,改变变量的状态,加入延时消抖、松下按键结束等操作,就可以实现按键对其他装置的控制。通过GPIO输入,我们可以读取外界的电平信号,由此可以用按键的导通实现对输入寄存器的操作。目前的stm32学习中,可以通过封装好的库函数,对寄存器的位进行操作。,它是由具有存储功能的。
2024-11-26 17:20:03
736
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人