stm32——hal库学习笔记(定时器)

这篇具有很好参考价值的文章主要介绍了stm32——hal库学习笔记(定时器)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、定时器概述(了解)

1.1,软件定时原理

使用纯软件(CPU死等)的方式实现定时(延时)功能
stm32——hal库学习笔记(定时器),stm32,学习,笔记

1.2,定时器定时原理

使用精准的时基,通过硬件的方式,实现定时功能
stm32——hal库学习笔记(定时器),stm32,学习,笔记

1.3,STM32定时器分类

stm32——hal库学习笔记(定时器),stm32,学习,笔记

1.4,STM32定时器特性表

stm32——hal库学习笔记(定时器),stm32,学习,笔记

1.5,STM32基本、通用、高级定时器的功能整体区别

stm32——hal库学习笔记(定时器),stm32,学习,笔记

二、基本定时器(掌握)

2.1,基本定时器简介(了解)

stm32——hal库学习笔记(定时器),stm32,学习,笔记

2.2,基本定时器框图(熟悉)

stm32——hal库学习笔记(定时器),stm32,学习,笔记

2.3,定时器计数模式及溢出条件(熟悉)

stm32——hal库学习笔记(定时器),stm32,学习,笔记
递增计数模式实例说明
stm32——hal库学习笔记(定时器),stm32,学习,笔记
中心对齐模式实例说明
stm32——hal库学习笔记(定时器),stm32,学习,笔记

2.4,定时器中断实验相关寄存器(了解)

TIM6 和TIM7 控制寄存器 1(TIMx_CR1)
stm32——hal库学习笔记(定时器),stm32,学习,笔记
TIM6 和TIM7 DMA/中断使能寄存器(TIMx_DIER)
stm32——hal库学习笔记(定时器),stm32,学习,笔记TIM6 和TIM7 状态寄存器(TIMx_SR)
stm32——hal库学习笔记(定时器),stm32,学习,笔记
TIM6 和TIM7 计数器(TIMx_CNT)
stm32——hal库学习笔记(定时器),stm32,学习,笔记
TIM6 和TIM7 预分频器(TIMx_PSC)
stm32——hal库学习笔记(定时器),stm32,学习,笔记
TIM6 和TIM7 自动重装载寄存器(TIMx_ARR)
stm32——hal库学习笔记(定时器),stm32,学习,笔记

2.5,定时器溢出时间计算方法(掌握)

stm32——hal库学习笔记(定时器),stm32,学习,笔记

2.6,定时器中断实验配置步骤(掌握)

stm32——hal库学习笔记(定时器),stm32,学习,笔记

HAL_TIM_Base_Init()

stm32——hal库学习笔记(定时器),stm32,学习,笔记

HAL_TIM_Base_MspInit()     //配置NVIC、CLOCK等

stm32——hal库学习笔记(定时器),stm32,学习,笔记

HAL_TIM_Base_Start_IT()

stm32——hal库学习笔记(定时器),stm32,学习,笔记

HAL_NVIC_SetPriority()HAL_NVIC_EnableIRQ()

stm32——hal库学习笔记(定时器),stm32,学习,笔记

TIMx_IRQHandler()等、HAL_TIM_IRQHandler()

stm32——hal库学习笔记(定时器),stm32,学习,笔记

HAL_TIM_PeriodElapsedCallback()

相关HAL库函数介绍
stm32——hal库学习笔记(定时器),stm32,学习,笔记
关键结构体介绍
stm32——hal库学习笔记(定时器),stm32,学习,笔记

2.7,编程实战:定时器中断实验(掌握)![在这里插入图

使用定时器6,实现500ms定时器更新中断,在中断里翻转LED0
stm32——hal库学习笔记(定时器),stm32,学习,笔记
btim.c

#include "./BSP/LED/led.h"
#include "./BSP/TIMER/btim.h"
TIM_HandleTypeDef g_timx_handle;  /* 定时器句柄 */
/**
 * @brief       基本定时器TIMX定时中断初始化函数
 * @note
 *              基本定时器的时钟来自APB1,当PPRE1 ≥ 2分频的时候
 *              基本定时器的时钟为APB1时钟的2倍, 而APB1为36M, 所以定时器时钟 = 72Mhz
 *              定时器溢出时间计算方法: Tout = ((arr + 1) * (psc + 1)) / Ft us.
 *              Ft=定时器工作频率,单位:Mhz
 *
 * @param       arr: 自动重装值。
 * @param       psc: 时钟预分频数
 * @retval      无
 */
void btim_timx_int_init(uint16_t arr, uint16_t psc)
{
    g_timx_handle.Instance = BTIM_TIMX_INT;                      /* 通用定时器X */
    g_timx_handle.Init.Prescaler = psc;                          /* 设置预分频系数 */
    g_timx_handle.Init.CounterMode = TIM_COUNTERMODE_UP;         /* 递增计数模式 */
    g_timx_handle.Init.Period = arr;                             /* 自动装载值 */
    HAL_TIM_Base_Init(&g_timx_handle);

    HAL_TIM_Base_Start_IT(&g_timx_handle);    /* 使能定时器x及其更新中断 */
}

/**
 * @brief       定时器底层驱动,开启时钟,设置中断优先级
                此函数会被HAL_TIM_Base_Init()函数调用
 * @param       htim:定时器句柄
 * @retval      无
 */
void HAL_TIM_Base_MspInit(TIM_HandleTypeDef *htim)
{
    if (htim->Instance == BTIM_TIMX_INT)
    {
        BTIM_TIMX_INT_CLK_ENABLE();                     /* 使能TIM时钟 */
        HAL_NVIC_SetPriority(BTIM_TIMX_INT_IRQn, 1, 3); /* 抢占1,子优先级3,组2 */
        HAL_NVIC_EnableIRQ(BTIM_TIMX_INT_IRQn);         /* 开启ITM3中断 */
    }
}

/**
 * @brief       定时器TIMX中断服务函数
 * @param       无
 * @retval      无
 */
void BTIM_TIMX_INT_IRQHandler(void)
{
    HAL_TIM_IRQHandler(&g_timx_handle); /* 定时器中断公共处理函数 */
}

/**
 * @brief       定时器更新中断回调函数
 * @param       htim:定时器句柄
 * @retval      无
 */
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
    if (htim->Instance == BTIM_TIMX_INT)
    {
        LED1_TOGGLE(); /* LED1反转 */
    }
}

btim.h

#ifndef __BTIM_H
#define __BTIM_H

#include "./SYSTEM/sys/sys.h"
/******************************************************************************************/
/* 基本定时器 定义 */
/* TIMX 中断定义 
 * 默认是针对TIM6/TIM7
 * 注意: 通过修改这4个宏定义,可以支持TIM1~TIM8任意一个定时器.
 */
 #define BTIM_TIMX_INT                       TIM6
#define BTIM_TIMX_INT_IRQn                  TIM6_DAC_IRQn
#define BTIM_TIMX_INT_IRQHandler            TIM6_DAC_IRQHandler
#define BTIM_TIMX_INT_CLK_ENABLE()          do{ __HAL_RCC_TIM6_CLK_ENABLE(); }while(0)   /* TIM6 时钟使能 */
/******************************************************************************************/
void btim_timx_int_init(uint16_t arr, uint16_t psc);    /* 基本定时器 定时中断初始化函数 */

#endif

main.c

#include "./SYSTEM/sys/sys.h"
#include "./SYSTEM/usart/usart.h"
#include "./SYSTEM/delay/delay.h"
#include "./BSP/LED/led.h"
#include "./BSP/TIMER/btim.h"

int main(void)
{
    HAL_Init();                             /* 初始化HAL库 */
    sys_stm32_clock_init(RCC_PLL_MUL9);     /* 设置时钟, 72Mhz */
    delay_init(72);                         /* 延时初始化 */
    usart_init(115200);                     /* 串口初始化为115200 */
    led_init();                             /* 初始化LED */
    btim_timx_int_init(5000 - 1, 7200 - 1); /* 10Khz的计数频率,计数5K次为500ms */

    while (1)
    {
        LED0_TOGGLE();
        delay_ms(200);
    }
}

三、通用定时器(掌握)

3.1,通用定时器简介(了解)

stm32——hal库学习笔记(定时器),stm32,学习,笔记

3.2,通用定时器框图(熟悉)

stm32——hal库学习笔记(定时器),stm32,学习,笔记
stm32——hal库学习笔记(定时器),stm32,学习,笔记

3.3,计数器时钟源(掌握)

stm32——hal库学习笔记(定时器),stm32,学习,笔记
计数器时钟源寄存器设置方法(F1为例)
stm32——hal库学习笔记(定时器),stm32,学习,笔记
外部时钟模式1
stm32——hal库学习笔记(定时器),stm32,学习,笔记
外部时钟模式2
stm32——hal库学习笔记(定时器),stm32,学习,笔记
使用一个定时器作为另一个定时器的预分频器(F1为例)
stm32——hal库学习笔记(定时器),stm32,学习,笔记
解读通用定时器中断实验
stm32——hal库学习笔记(定时器),stm32,学习,笔记

3.4,通用定时器PWM输出实验(掌握)

3.4.1,通用定时器输出比较部分框图介绍(熟悉)

stm32——hal库学习笔记(定时器),stm32,学习,笔记
捕获/比较通道1的主电路—输出部分
stm32——hal库学习笔记(定时器),stm32,学习,笔记
捕获/比较通道的输出部分(通道1)
stm32——hal库学习笔记(定时器),stm32,学习,笔记

3.4.2,通用定时器输出PWM原理(掌握)

stm32——hal库学习笔记(定时器),stm32,学习,笔记

3.4.3,PWM模式(熟悉)

stm32——hal库学习笔记(定时器),stm32,学习,笔记
stm32——hal库学习笔记(定时器),stm32,学习,笔记

3.4.4,通用定时器PWM输出实验配置步骤(掌握)

stm32——hal库学习笔记(定时器),stm32,学习,笔记

HAL_TIM_PWM_Init()

stm32——hal库学习笔记(定时器),stm32,学习,笔记

HAL_TIM_PWM_MspInit()     //配置NVIC、CLOCK、GPIO等

stm32——hal库学习笔记(定时器),stm32,学习,笔记

HAL_TIM_PWM_ConfigChannel()

stm32——hal库学习笔记(定时器),stm32,学习,笔记

HAL_TIM_PWM_Start()

stm32——hal库学习笔记(定时器),stm32,学习,笔记

__HAL_TIM_SET_COMPARE()

stm32——hal库学习笔记(定时器),stm32,学习,笔记

__HAL_TIM_ENABLE_OCxPRELOAD()

相关HAL库函数介绍
stm32——hal库学习笔记(定时器),stm32,学习,笔记
关键结构体介绍
stm32——hal库学习笔记(定时器),stm32,学习,笔记

3.4.5,编程实战:通用定时器PWM输出实验(掌握)stm32——hal库学习笔记(定时器),stm32,学习,笔记

3.5,通用定时器输入捕获实验(掌握)

3.5.1,通用定时器输入捕获部分框图介绍(熟悉)

stm32——hal库学习笔记(定时器),stm32,学习,笔记
捕获/比较通道的输入部分(通道1)
stm32——hal库学习笔记(定时器),stm32,学习,笔记

3.5.2,通用定时器输入捕获脉宽测量原理(掌握)

stm32——hal库学习笔记(定时器),stm32,学习,笔记

3.5.3,通用定时器输入捕获实验配置步骤(掌握)

stm32——hal库学习笔记(定时器),stm32,学习,笔记

HAL_TIM_IC_Init()

stm32——hal库学习笔记(定时器),stm32,学习,笔记

HAL_TIM_IC_MspInit()     //配置NVIC、CLOCK、GPIO等

stm32——hal库学习笔记(定时器),stm32,学习,笔记

HAL_TIM_IC_ConfigChannel()

stm32——hal库学习笔记(定时器),stm32,学习,笔记

HAL_NVIC_SetPriority()HAL_NVIC_EnableIRQ()

stm32——hal库学习笔记(定时器),stm32,学习,笔记

__HAL_TIM_ENABLE_IT()

stm32——hal库学习笔记(定时器),stm32,学习,笔记

HAL_TIM_IC_Start_IT()

stm32——hal库学习笔记(定时器),stm32,学习,笔记

TIMx_IRQHandler()等、 HAL_TIM_IRQHandler()

stm32——hal库学习笔记(定时器),stm32,学习,笔记

HAL_TIM_PeriodElapsedCallback()HAL_TIM_IC_CaptureCallback()

相关HAL库函数介绍
stm32——hal库学习笔记(定时器),stm32,学习,笔记
关键结构体介绍
stm32——hal库学习笔记(定时器),stm32,学习,笔记

3.5.4,编程实战:通用定时器输入捕获实验(掌握)

通过定时器5通道1来捕获按键高电平脉宽时间,通过串口打印出来
stm32——hal库学习笔记(定时器),stm32,学习,笔记

3.6,通用定时器脉冲计数实验(掌握)

3.6.1,脉冲计数实验原理(熟悉)

stm32——hal库学习笔记(定时器),stm32,学习,笔记
外部时钟模式1
stm32——hal库学习笔记(定时器),stm32,学习,笔记

3.6.2,通用定时器脉冲计数实验配置步骤(掌握)

stm32——hal库学习笔记(定时器),stm32,学习,笔记

HAL_TIM_IC_Init()

stm32——hal库学习笔记(定时器),stm32,学习,笔记

HAL_TIM_IC_MspInit()     //配置NVIC、CLOCK、GPIO等

stm32——hal库学习笔记(定时器),stm32,学习,笔记

HAL_TIM_SlaveConfigSynchro()

stm32——hal库学习笔记(定时器),stm32,学习,笔记

HAL_TIM_IC_Start()

stm32——hal库学习笔记(定时器),stm32,学习,笔记

__HAL_TIM_GET_COUNTER()

stm32——hal库学习笔记(定时器),stm32,学习,笔记

__HAL_TIM_SET_COUNTER()

相关HAL库函数介绍
stm32——hal库学习笔记(定时器),stm32,学习,笔记
关键结构体介绍
stm32——hal库学习笔记(定时器),stm32,学习,笔记

3.6.3,编程实战:通用定时器脉冲计数实验(掌握)

将定时器2通道1输入的高电平脉冲作为定时器2的时钟,并通过串口打印脉冲数
stm32——hal库学习笔记(定时器),stm32,学习,笔记

四、高级定时器(掌握)

4.1,高级定时器简介(了解)

stm32——hal库学习笔记(定时器),stm32,学习,笔记

4.2,高级定时器框图(熟悉)

stm32——hal库学习笔记(定时器),stm32,学习,笔记

4.3,高级定时器输出指定个数PWM实验(掌握)

4.3.1,重复计数器特性(熟悉)

stm32——hal库学习笔记(定时器),stm32,学习,笔记
计数器每次上溢或下溢都能使重复计数器减1,减到0时,再发生一次溢出就会产生更新事件

如果设置RCR为N,
更新事件将在N+1
次溢出时发生

4.3.2,高级定时器输出指定个数PWM实验原理(掌握)

stm32——hal库学习笔记(定时器),stm32,学习,笔记

4.3.3,高级定时器输出指定个数PWM实验配置步骤(掌握)

stm32——hal库学习笔记(定时器),stm32,学习,笔记

HAL_TIM_PWM_Init()

stm32——hal库学习笔记(定时器),stm32,学习,笔记

HAL_TIM_PWM_MspInit()   //配置NVIC、CLOCK、GPIO等

stm32——hal库学习笔记(定时器),stm32,学习,笔记

HAL_TIM_PWM_ConfigChannel()

stm32——hal库学习笔记(定时器),stm32,学习,笔记

HAL_NVIC_SetPriority()HAL_NVIC_EnableIRQ()

stm32——hal库学习笔记(定时器),stm32,学习,笔记

__HAL_TIM_ENABLE_IT()

stm32——hal库学习笔记(定时器),stm32,学习,笔记

HAL_TIM_PWM_Start()

stm32——hal库学习笔记(定时器),stm32,学习,笔记

TIMx_IRQHandler()等、HAL_TIM_IRQHandler()

stm32——hal库学习笔记(定时器),stm32,学习,笔记

HAL_TIM_PeriodElapsedCallback()

相关HAL库函数介绍
stm32——hal库学习笔记(定时器),stm32,学习,笔记
关键结构体介绍
stm32——hal库学习笔记(定时器),stm32,学习,笔记

4.3.4,编程实战:高级定时器输出指定个数PWM实验(掌握)

通过定时器8通道1实现指定个数PWM输出,用于控制LED1的亮灭
stm32——hal库学习笔记(定时器),stm32,学习,笔记

4.4,高级定时器输出比较模式实验(掌握)

4.4.1,高级定时器输出比较模式实验原理(掌握)

stm32——hal库学习笔记(定时器),stm32,学习,笔记

4.4.2,高级定时器输出比较模式实验配置步骤(掌握)

stm32——hal库学习笔记(定时器),stm32,学习,笔记

HAL_TIM_OC_Init()

stm32——hal库学习笔记(定时器),stm32,学习,笔记

HAL_TIM_OC_MspInit()   //配置NVIC、CLOCK、GPIO等

stm32——hal库学习笔记(定时器),stm32,学习,笔记

HAL_TIM_OC_ConfigChannel()

stm32——hal库学习笔记(定时器),stm32,学习,笔记

__HAL_TIM_ENABLE_OCxPRELOAD()

stm32——hal库学习笔记(定时器),stm32,学习,笔记

HAL_TIM_OC_Start()

stm32——hal库学习笔记(定时器),stm32,学习,笔记

__HAL_TIM_SET_COMPARE()

相关HAL库函数介绍
stm32——hal库学习笔记(定时器),stm32,学习,笔记
关键结构体介绍
stm32——hal库学习笔记(定时器),stm32,学习,笔记

4.4.3,编程实战:高级定时器输出比较模式实验(掌握)

通过定时器8通道1/2/3/4输出相位分别为25%、50%、75%、100%的PWM
stm32——hal库学习笔记(定时器),stm32,学习,笔记

4.5,高级定时器互补输出带死区控制实验(掌握)

4.5.1,互补输出,还带死区控制,什么意思?(了解)

stm32——hal库学习笔记(定时器),stm32,学习,笔记

4.5.2,带死区控制的互补输出应用之H桥(了解)

stm32——hal库学习笔记(定时器),stm32,学习,笔记

4.5.3,捕获/比较通道的输出部分(通道1至3)(熟悉)

stm32——hal库学习笔记(定时器),stm32,学习,笔记

4.5.4,死区时间计算(掌握)

stm32——hal库学习笔记(定时器),stm32,学习,笔记
举个栗子(F1为例):DTG[7:0]=250
250,即二进制:1111 1010,选第四条
DT = (32+26)1655.56 ns=51.55968us

4.5.5,刹车(断路)功能(熟悉)

stm32——hal库学习笔记(定时器),stm32,学习,笔记
发生刹车后,会怎么样?

stm32——hal库学习笔记(定时器),stm32,学习,笔记

4.5.6,高级定时器互补输出带死区控制实验配置步骤(掌握)

stm32——hal库学习笔记(定时器),stm32,学习,笔记

HAL_TIM_PWM_Init()

stm32——hal库学习笔记(定时器),stm32,学习,笔记

HAL_TIM_PWM_MspInit()     //配置NVIC、CLOCK、GPIO等

stm32——hal库学习笔记(定时器),stm32,学习,笔记

HAL_TIM_PWM_ConfigChannel()

stm32——hal库学习笔记(定时器),stm32,学习,笔记

HAL_TIMEx_ConfigBreakDeadTime()

stm32——hal库学习笔记(定时器),stm32,学习,笔记

HAL_TIM_PWM_Start()

stm32——hal库学习笔记(定时器),stm32,学习,笔记

HAL_TIMEx_PWMN_Start()

相关HAL库函数介绍
stm32——hal库学习笔记(定时器),stm32,学习,笔记
关键结构体介绍
stm32——hal库学习笔记(定时器),stm32,学习,笔记

4.5.7,编程实战:高级定时器互补输出带死区控制实验(掌握)

通过定时器1通道1输出频率为1KHz,占空比为70%的PWM,使用PWM模式1
使能互补输出并设置死区时间控制:设置DTG为100(5.56us),进行验证死区时间是否正确
使能刹车功能:刹车输入信号高电平有效,配置输出空闲状态等,最后用示波器验证
stm32——hal库学习笔记(定时器),stm32,学习,笔记

4.6,高级定时器PWM输入模式实验(掌握)

4.6.1,PWM输入模式工作原理(熟悉)

stm32——hal库学习笔记(定时器),stm32,学习,笔记

4.6.2,PWM输入模式时序(熟悉)

stm32——hal库学习笔记(定时器),stm32,学习,笔记

4.6.3,高级定时器PWM输入模式实验配置步骤(掌握)

stm32——hal库学习笔记(定时器),stm32,学习,笔记

HAL_TIM_IC_Init()

stm32——hal库学习笔记(定时器),stm32,学习,笔记

HAL_TIM_IC_MspInit()     //配置NVIC、CLOCK、GPIO等

stm32——hal库学习笔记(定时器),stm32,学习,笔记

HAL_TIM_IC_ConfigChannel()

stm32——hal库学习笔记(定时器),stm32,学习,笔记

HAL_TIM_SlaveConfigSynchro()

stm32——hal库学习笔记(定时器),stm32,学习,笔记

HAL_NVIC_SetPriority()HAL_NVIC_EnableIRQ()

stm32——hal库学习笔记(定时器),stm32,学习,笔记

HAL_TIM_IC_Start_IT()HAL_TIM_IC_Start()

stm32——hal库学习笔记(定时器),stm32,学习,笔记

TIMx_IRQHandler()等、HAL_TIM_IRQHandler()

stm32——hal库学习笔记(定时器),stm32,学习,笔记

HAL_TIM_IC_CaptureCallback()

相关HAL库函数介绍
stm32——hal库学习笔记(定时器),stm32,学习,笔记
关键结构体介绍
stm32——hal库学习笔记(定时器),stm32,学习,笔记

4.6.4,编程实战:高级定时器PWM输入模式实验(掌握)

stm32——hal库学习笔记(定时器),stm32,学习,笔记文章来源地址https://www.toymoban.com/news/detail-834158.html

到了这里,关于stm32——hal库学习笔记(定时器)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • STM32 HAL库 Timer(定时器)+DMA输出PWM底层配置过程学习

    本文使用的芯片型号是STM32G030,写本文的目前是想记录学习下Timer借助DMA生成可变占空比PWM时的底层配置过程。 使用TIM1,配置就只改了图上的配置,系统时钟用的16M,分频选择15(16-1),自动重装载寄存器ARR选择999(1000-1),那么生成的就是1kHz的PWM,这里为什么要减1,因为这俩是

    2024年04月09日
    浏览(33)
  • STM32 HAL库 CubeMX配置 定时器学习 F103C8T6

    开发板: STM32F103C8T6最小系统板 编译环境: Keil5 MDK 辅助软件: STM32 CubeMX 课程教学: 基于正点原子HAL库学习教程 其余配件: 江科大STM32配件包 和 示波器一台 备注:  因为这块开发板没有基本定时器,所以本文也 没有基本定时器的内容             本文1.3和2.1部分的

    2024年04月26日
    浏览(15)
  • 【STM32】学习笔记(TIM定时器)

    定时器可以对输入的时钟进行计数,并在计数值达到设定值时触发中断 16位计数器、预分频器、自动重装寄存器的时基单元,在72MHz计数时钟下可以实现最大59.65s的定时 不仅具备基本的定时中断功能,而且还包含内外时钟源选择、输入捕获、输出比较、编码器接口、主从触发

    2024年02月09日
    浏览(17)
  • 基于STM32的定时器--定时中断(HAL库)

    本文旨在介绍如何使用STM32CubeMX配置+KEIL 5开发一个每10us定时器中断触发一次的项目。帮助初学者入门STM32的定时器使用。 定时器是STM32微控制器中非常重要的功能模块之一,用于计时、生成精确的时间延迟、触发事件等。STM32微控制器通常具有多个定时器模块,包括通用定时

    2024年02月14日
    浏览(24)
  • stm32学习笔记-6TIM定时器

    注:笔记主要参考B站 江科大自化协 教学视频“STM32入门教程-2023持续更新中”。 注:工程及代码文件放在了本人的Github仓库。 定时器是STM32中功能最强大、结构最复杂的一个外设。定时器将包括四部分8小节: 第一部分主要讲定时器基本定时的功能,也就是指定一个时间,让

    2024年02月15日
    浏览(20)
  • STM32 HAL库-定时器中断

    关闭或开启所有中断;代码如下: STM32F407 有众多的定时器,其中包括 2 个基本定时器(TIM6 和 TIM7)、10 个通用定时 器(TIM2 ~ TIM5、TIM9 ~TIM14)、2 个高级控制定时器(TIM1 和 TIM8),这些定时器彼此完 全独立,不共享任何资源。 选择定时器,配置时钟源,设置预分频系数,计

    2024年01月25日
    浏览(35)
  • 正点原子--STM32基本定时器学习笔记(1)

    目录 1. 定时器概述 1.1 软件定时原理 1.2 定时器定时原理 1.3 定时器分类 1.4 定时器特性表 1.5 基本、通用、高级定时器的功能整体区别 2. 基本定时器简介 3. 基本定时器框图 时钟树分析 这部分是笔者对基本定时器的理论知识进行学习与总结!主要记录学习过程中遇到的重难点

    2024年02月19日
    浏览(23)
  • 【STM32】学习笔记(TIM定时器)-江科大

    定时器可以对输入的时钟进行计数,并在计数值达到设定值时触发中断 16位计数器、预分频器、自动重装寄存器的时基单元,在72MHz计数时钟下可以实现最大59.65s的定时 不仅具备基本的定时中断功能,而且还包含内外时钟源选择、输入捕获、输出比较、编码器接口、主从触发

    2024年02月10日
    浏览(25)
  • (四) timer+pit(定时器中断)+encoder(编码器)-逐飞TC264库学习(对比STM32 HAL库)

    PIT , 是programmable interval timer 可编程间隔定时器 DSC中的器件 的缩写,所以就是定时器中断,有点像32里的timer(TIMx) 目前看来一共能用通道的有四个 typedef enum // 枚举通道号 {     CCU60_CH0,     CCU60_CH1,     CCU61_CH0,     CCU61_CH1, }pit_index_enum; 因为涉及到中断,为方便设定中断优

    2024年03月15日
    浏览(42)
  • # HAL库STM32常用外设教程(四)—— 定时器 基本定时

    1、STM32F407ZGT6 2、STM32CubeMx软件 3、keil5 内容简述: 通篇文章将涉及以下内容,如有错误,欢迎指出 : 1、基础定时器特性 2、基础定时器的结构和功能 3、基础定时器HAL库驱动程序 (1)CubeMx配置 (2)TIM驱动程序   STM32F407有2个高级控制定时器(TIM1、TIM8)、8个通用定时器和

    2024年02月02日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包