89 lines
2.5 KiB
C
89 lines
2.5 KiB
C
|
/**
|
|||
|
******************************************************************************
|
|||
|
* @file bsp_basic_tim.c
|
|||
|
* @author STMicroelectronics
|
|||
|
* @version V1.0
|
|||
|
* @date 2015-xx-xx
|
|||
|
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
******************************************************************************
|
|||
|
* @attention
|
|||
|
*
|
|||
|
* ʵ<EFBFBD><EFBFBD>ƽ̨:Ұ<EFBFBD><EFBFBD> STM32 H750 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* <EFBFBD><EFBFBD>̳ :http://www.firebbs.cn
|
|||
|
* <EFBFBD>Ա<EFBFBD> :https://fire-stm32.taobao.com
|
|||
|
*
|
|||
|
******************************************************************************
|
|||
|
*/
|
|||
|
|
|||
|
#include "./tim/bsp_basic_tim.h"
|
|||
|
#include "./led/bsp_led.h"
|
|||
|
TIM_HandleTypeDef TIM_Base;
|
|||
|
|
|||
|
|
|||
|
/**
|
|||
|
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD> TIMx,x[6,7]<EFBFBD>ж<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param <EFBFBD><EFBFBD>
|
|||
|
* @retval <EFBFBD><EFBFBD>
|
|||
|
*/
|
|||
|
static void TIMx_NVIC_Configuration(void)
|
|||
|
{
|
|||
|
HAL_NVIC_SetPriority(BASIC_TIM_IRQn, 0, 0);
|
|||
|
HAL_NVIC_EnableIRQ(BASIC_TIM_IRQn);
|
|||
|
}
|
|||
|
/*
|
|||
|
* ע<EFBFBD>⣺TIM_TimeBaseInitTypeDef<EFBFBD>ṹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>5<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><EFBFBD>TIM6<EFBFBD><EFBFBD>TIM7<EFBFBD>ļĴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><EFBFBD>
|
|||
|
* TIM_Prescaler<EFBFBD><EFBFBD>TIM_Period<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD>TIM6<EFBFBD><EFBFBD>TIM7<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>ֻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><EFBFBD><EFBFBD>ɣ<EFBFBD>
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><EFBFBD>ͨ<EFBFBD>ö<EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
*-----------------------------------------------------------------------------
|
|||
|
* TIM_Prescaler <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* TIM_CounterMode TIMx,x[6,7]û<EFBFBD>У<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* TIM_Period <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* TIM_ClockDivision TIMx,x[6,7]û<EFBFBD>У<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>)
|
|||
|
* TIM_RepetitionCounter TIMx,x[1,8]<EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>)
|
|||
|
*-----------------------------------------------------------------------------
|
|||
|
*/
|
|||
|
static void TIMx_Configuration(void)
|
|||
|
{
|
|||
|
BASIC_TIM_CLK_ENABLE();
|
|||
|
|
|||
|
TIM_Base.Instance = BASIC_TIM;
|
|||
|
/* <20>ۼ<EFBFBD> TIM_Period<6F><64><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>»<EFBFBD><C2BB><EFBFBD><EFBFBD>ж<EFBFBD>*/
|
|||
|
//<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>0<EFBFBD><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD>4999<39><39><EFBFBD><EFBFBD>Ϊ5000<30>Σ<EFBFBD>Ϊһ<CEAA><D2BB><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
|
|||
|
TIM_Base.Init.Period = 5000 - 1;
|
|||
|
//<2F><>ʱ<EFBFBD><CAB1>ʱ<EFBFBD><CAB1>ԴTIMxCLK = 2 * PCLK1
|
|||
|
// PCLK1 = HCLK / 4
|
|||
|
// => TIMxCLK=HCLK/2=SystemCoreClock/2=240MHz
|
|||
|
// <20>趨<EFBFBD><E8B6A8>ʱ<EFBFBD><CAB1>Ƶ<EFBFBD><C6B5>Ϊ=TIMxCLK/(TIM_Prescaler+1)=10000Hz
|
|||
|
TIM_Base.Init.Prescaler = 24000 - 1;
|
|||
|
// <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>TIM
|
|||
|
HAL_TIM_Base_Init(&TIM_Base);
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
|||
|
HAL_TIM_Base_Start_IT(&TIM_Base);
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* @brief <EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>1ms<EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
|||
|
* @param <EFBFBD><EFBFBD>
|
|||
|
* @retval <EFBFBD><EFBFBD>
|
|||
|
*/
|
|||
|
void TIM_Basic_Init(void)
|
|||
|
{
|
|||
|
TIMx_Configuration();
|
|||
|
|
|||
|
TIMx_NVIC_Configuration();
|
|||
|
}
|
|||
|
/**
|
|||
|
* @brief <EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϻص<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param htim : TIM<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @retval <EFBFBD><EFBFBD>
|
|||
|
*/
|
|||
|
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
|
|||
|
{
|
|||
|
if(htim->Instance == TIM6)
|
|||
|
LED1_TOGGLE;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
/*********************************************END OF FILE**********************/
|
|||
|
|