20240311基本定时器

news/2024/11/28 9:24:22/

一、简介

  F429默认需要配置的频率如下:*              CPU频率(HCLK) = pll_p_ck = 180Mhz*              AHB1/2/3(rcc_hclk1/2/3) = 180Mhz*              APB1(rcc_pclk1) = pll_p_ck / 4 = 45Mhz*              APB2(rcc_pclk2) = pll_p_ck / 2 = 90Mhz基本定时器的时钟为APB1时钟的2, 而APB1为45M, 所以定时器时钟 = 90Mhz

二、通用定时器HAL库函数流程

 btim_timx_int_init(5000 - 1, 9000 - 1);  /* 90 000 000 / 9000 = 10KHz 10KHz的计数频率,计数5K次为500ms */1.TIMx时钟使能(x:2~5)        拿TIM3为例HAL_RCC_TIM3_CLK_ENABLE();        // 使能TIM3时钟2.初始化定时器参数,设置自动重装值,分频系数,计数方式等HAL_TIM_Base_Init();3.使能定时器更新中断,使能定时器HAL_TIM_Base_Start_IT;        // 使能句柄指定的定时器更新中断4.TIM3中断优先级设置HAL_NVIC_SetPriority(TIM3_IRQn, x, x);HAL_NVIC_EnableIRQ(TIM3_IRQn);
5.编写中断服务函数(也要编写中断回调函数)void HAL_TIM_IRQHandler();        // 中断服务函数HAL_TIM_IRQHandler();                // 中断处理入口函数void HAL_TIM_PeriodElapseCallback();        // 定时器更新中断回调函数

定时器控制LED灯的反转

/******************************************************************************************************* @file        btim.c* @author      正点原子团队(ALIENTEK)* @version     V1.0* @date        2022-04-20* @brief       基本定时器 驱动代码* @license     Copyright (c) 2020-2032, 广州市星翼电子科技有限公司***************************************************************************************************** @attention** 实验平台:正点原子 阿波罗 F429开发板* 在线视频:www.yuanzige.com* 技术论坛:www.openedv.com* 公司网址:www.alientek.com* 购买地址:openedv.taobao.com** 修改说明* V1.0 20220420* 第一次发布******************************************************************************************************/#include "./BSP/LED/led.h"
#include "./BSP/TIMER/btim.h"TIM_HandleTypeDef g_timx_handle;                                /* 定时器参数句柄 *//*** @brief       基本定时器TIMX定时中断初始化函数* @note*              基本定时器的时钟来自APB1,当PPRE1 ≥ 2分频的时候*              基本定时器的时钟为APB1时钟的2倍, 而APB1为45M, 所以定时器时钟 = 90Mhz*              定时器溢出时间计算方法: 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();                     /* 使能TIMx时钟 */HAL_NVIC_SetPriority(BTIM_TIMX_INT_IRQn, 1, 3); /* 抢占1,子优先级3 */HAL_NVIC_EnableIRQ(BTIM_TIMX_INT_IRQn);         /* 开启ITMx中断 */}
}/*** @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反转 */}
}

http://www.ppmy.cn/news/1379751.html

相关文章

机器学习之分类回归模型(决策数、随机森林)

回归分析 回归分析属于监督学习方法的一种,主要用于预测连续型目标变量,可以预测、计算趋势以及确定变量之间的关系等。 Regession Evaluation Metrics 以下是一些最流行的回归评估指标: 平均绝对误差(MAE):目标变量的预测值与实际值之间的平均绝对差…

RStudio更换R语言版本

今天下载R语言用于读取.xlsx文件的readxl包时,RStudio提示该包是使用R-4.3.3版本构建,而我现在使用的是R-4.3.2版本,所以需要升级一下R语言版本,这里先下载最新版本的R语言, 下载地址:The Comprehensive R…

一文了解Cornerstone3D中窗宽窗位的3种设置场景及原理

🔆 引言 在使用Cornerstone3D渲染影像时,有一个常用功能“设置窗宽窗位(windowWidth&windowLevel)”,通过精确调整窗宽窗位,医生能够更清晰地区分各种组织,如区别软组织、骨骼、脑组织等。…

龙迅#LT8711UXE1 适用于Type-C/DP1.2/EDP转HDMI2.0方案,支持音频剥离和HDCP功能。

1. 描述 LT8711UXE1是一款高性能的 Type-C/DP1.2 转 HDMI2.0 转换器,设计用于将 USB Type-C 源或 DP1.2 源连接到 HDMI2.0 接收器。该LT8711UXE1集成了符合 DP1.2 标准的接收器和符合 HDMI2.0 标准的发射器。此外,还包括两个用于 CC 通信的 CC 控制器&a…

深度学习_AlexNet_2

目标 知道AlexNet网络结构能够利用AlexNet完成图像分类 2012年,AlexNet横空出世,该模型的名字源于论文第一作者的姓名Alex Krizhevsky 。AlexNet使用了8层卷积神经网络,以很大的优势赢得了ImageNet 2012图像识别挑战赛。它首次证明了学习到…

用Vision Pro来控制机器人

【技术框架概述】 - visionOS App + Python Library用于从Vision Pro将头部/手腕/手指跟踪数据流式传输到任何机器人。 【定位】 - 该框架旨在利用Vision Pro控制机器人,并记录用户在环境中导航和操作的方式,以训练机器人。 【核心功能】 1. 提供visionOS应用程序和Py…

机器学习笔记 计算机视觉中的测距任务常见技术路线

一、计算机视觉中的测距任务 测距是计算机视觉中的一项关键任务,涉及测量物体和相机之间的距离。这些信息可用于多种应用,包括机器人、自动驾驶汽车和增强现实。测距技术有很多种,包括主动式和被动式,每种技术都有自己的优点和局限性。主动测距技术,例如飞行时间、结构光和…

个人商城系统开源(配置支付宝支付!)

原文地址:个人商城系统开源(配置支付宝支付!) - Pleasure的博客 下面是正文内容: 前言 由于近期实在没有什么话题可写和一些有趣的项目教程可以分享。所以我只能决定将我自己亲手编写的一个迷你迷你商城系统进行开源…