STM32基础6--基本定时器

发布者:Serene123最新更新时间:2022-07-25 来源: csdn关键字:STM32  基本定时器  内部时钟 手机看文章 扫描二维码
随时随地手机看文章

STM32F407中有基本定时器,通用寄存器,高级寄存器。其中TIM6与TIM7是基本定时器。


基本定时器框图

在基本定时器中,内部时钟(CK_INT)经过控制器到达预分频器(PSC),经过分频后进入计数器(CNT COUNTER)。当计数值与自动重装寄存器的值一样,触发自重重装重新计数,同时可以触发中断 、DMA输出与事件。

设置定时时间

基本定时器是16位的定时器。预分频的值是16位,自动重装寄存器也是16位,也就是说这两个寄存器的最大值位65535。在STM32F407中,TIM6与TIM7都挂在APB1的Timer Clocks上面,它们的频率最高可以达到84MHz。当我们设置预分频值时,要注意预分频值不能超过65535。


预分频寄存器


分频后的频率 =  CK_PSC/ (PSC+1) ,该值为计数的步进值。分频后的频率的倒数,也就是每计一次数需要的时间。time = 1/ 分频后的频率 


自动重载寄存器


定时间 = (1/ 分频后的频率 )* (自动重载寄存器-1)


也就是说


定时时间 = (预分频寄存器+1)* (自动重载寄存器+1)/  时钟频率


如果需要定时 1s 


84MHz = 84000000Hz


1s  = 1/ 1Hz =   (41999+1)* (1999+1)/ 84000000 Hz 


STM32CubeMx配置基本定时器

基本设置

开启中断服务函数

配置中断服务函数优先级

HAL库中基本定时器初始化 

配置完程STM32CudeMX,自动生成tim.c,里面有对基本定时器初始化的函数。

HAL库中实现基本定时器中断服务过程

基本定时器完成后,会触发中断服务函数(在STM32CudeMX中中有配置中断函数),并且调用HAL_TIM_IRQHandler(&htim6)函数

为了使用定时器的功能,HAL_TIM_IRQHandler函数里除了有基本定时器功能,还有通用定时器与高级定时器其他功能的回调。而基本定时器功能使用HAL_TIM_PeriodElapsedCallback,该函数也是一个弱函数,我们需要对该函数进行重写。

下面对该函数进行重写,当基本定时器达到计数值时,对LED1进行翻转,也就是每1s,LED1翻转一次。


void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)

{

    if(htim->Instance == TIM6)

    {

       LED1_Toggle();

    }

 

}


当我们编译下载程序进STM32F407时,发现LED1没有翻转,原因是MX_TIM6_Init函数只是对基本定时器初始化,但是没有开启定时器。


注:我们需要在需要调用HAL_TIM_Base_Start_IT(&htim6),开启基本定时器TIM6 。

关键字:STM32  基本定时器  内部时钟 引用地址:STM32基础6--基本定时器

上一篇:STM32基础7--通用定时器(PWM输出)
下一篇:STM32基础5--外部中断

推荐阅读最新更新时间:2024-11-10 10:39

006_STM32程序移植之_SYN6288语音模块
1. 测试环境:STM32C8T6 2. 测试模块:SYN6288语音模块 3. 测试接口: SYN6288语音模块: VCC------------------3.3V GND------------------GND TXD-----------------PB11 RXD-----------------PB10 BY------------------PB1 2. 串口使用串口一,波特率9600 单片机引脚------------CH340引脚 VCC--------------------VCC GND-------------------GND PA9--------------------RXD PA10------
[单片机]
006_STM32程序移植之_SYN6288语音模块
STM32 TImer几种模式
输入捕获模式 库函数例程位置: STM32F10x_StdPeriph_Lib_V3.3.0ProjectSTM32F10x_StdPeriph_ExamplesTIMInputCapture 在输入捕获模式下,当检测到ICx信号上相应的边沿后,计数器的当前值被锁存到捕获/比较寄存器(TIMx_CCRx)中。当捕获事件发生时,相应的CCxIF标志(TIMx_SR寄存器)被置’1’,如果使能了中断或者DMA操作,则将产生中断或者DMA操作。 在捕获模式下,捕获发生在影子寄存器上,然后再复制到预装载寄存器中。 PWM输入模式 库函数例程位置 :STM32F10x_StdPeriph_Lib_V3.3.0ProjectSTM32
[单片机]
STM32 Cotex-M3处理器系列编程】外部按键中断
#include stm32f10x.h unsigned int TimingDelay; void Delay(unsigned int x) { TimingDelay=x; while(TimingDelay--); } void EXTI9_5_IRQHandler(void) //中断处理函数 { unsigned int tt; tt=6553500; if(EXTI_GetITStatus(EXTI_Line5)!=RESET) { GPIO_SetBits(GPIOC, GPIO_Pin_7); while(tt--); GPIO_ResetBits(GPIO
[单片机]
基于STM32神舟系列开发板的串口通信源码
#include stm32f10x.h #include stm32f10x_usart.h void RCC_Config(void); void GPIO_Config(void); void USART_Config(void); void Put_String(u8 *p); int main() { RCC_Config();//配置时钟 GPIO_Config();//配置输入输出 USART_Config();//配置发送接收 //GPIO.Pin选择待设置的 GPIO 管脚,使用操作符 | 可以一次选中多个管脚。 Put_String( 请发送数据_ ); while(1
[单片机]
STM32的IO口的8种配置(GPIO)
1 /` STM32的输入输出管脚有下面8种可能的配置:(4输入+2输出+2复用输出) ① 浮空输入_IN_FLOATING ② 带上拉输入_IPU ③ 带下拉输入_IPD ④ 模拟输入_AIN ⑤ 开漏输出_OUT_OD ⑥ 推挽输出_OUT_PP ⑦ 复用功能的推挽输出_AF_PP ⑧ 复用功能的开漏输出_AF_OD 1.1I/O口的输出模式下,有3种输出速度可选(2MHz、10MHz和50MHz),这个速度是指I/O口驱动电路的响应速度而不是输出信号的速度,输出信号的速度与程序有关(芯片内部在I/O口 的输出部分安排了多个响应速度不同的输出
[单片机]
STM32在IAR指定文件(函数)首地址
  有时候,我们会遇到一些情况,要把某些数组定义在某个固定的区域,或者指定某个函数的首地址。   例如,有两个文件,main.c和sendpc.c,要把sendpc.c放在0x08001200位置,把main.c放在0x08000800位置。   以IAR540为例,在stm32f10x_flash.icf文件里,加入以下两句:   place at address mem:0x08000800 { section .text object sendpc.o };   place at address mem:0x08001200 { section .text object main.o };   编译后可在map文件中查看
[单片机]
<font color='red'>STM32</font>在IAR指定文件(函数)首地址
STM32F429 >> 14. TIM_(一)_基本定时器
将定时器和GPIO 结合起来使用可以实现非常丰富的功能,例如测量输入信号的脉冲宽度、产生输出波形、产生PWM 控制电机状态等。 STM32F42xxx 系列控制器有 2 个高级控制定时器、10 个通用定时器和 2 个基本定时器,还有 2 个看门狗定时器。 控制器上所有定时器都是彼此独立的,不共享任何资源。 其中最大定时器时钟可通过 RCC_DCKCFGR 寄存器配置为 90MHz 或者 180MHz。 就功能上来说通用定时器包含所有基本定时器功能,而高级控制定时器包含通用定时器所有功能。 基本定时器 基本定时器主要两个功能: 第一就是基本定时功能,生成时基; 第二就是专门用于驱动数模转换器(DAC)。 基本定时器
[单片机]
STM32F429 >> 14. TIM_(一)_<font color='red'>基本</font><font color='red'>定时器</font>
基于STM32芯片和TFT-LCD的便携式心电图仪设计
便携式心电图设备的出现使心电信号能够在更多场合进行采集,它既可以实现可移动化,又可以实时的对心电信号进行分析。通过内置大容量存储器件能够对患者进行长时间的实时监护,并记录患者的心电数据,通过USB接口与PC机进行数据传输,以提交到专业医疗机构做进一步分析和诊断。 1、系统整体设计概述 系统原理框图可以用图1表示。心电信号由电极获取,送入心电采集电路,经前置放大、主放大、高低通滤波、电平抬升后,得到符合要求的心电信号,并送入到STM32的ADC进行AD转换。为了更好地抑制干扰信号,在电路中还引入了右腿驱动电路。系统控制芯片采用STM32,TFT-LCD的触摸功能加上少量按键可以建立良好的人机交互环境,可以通过LCD实时显示和回放
[单片机]
基于<font color='red'>STM32</font>芯片和TFT-LCD的便携式心电图仪设计
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved