1.时钟设置(72Mhz)
2.Basic Timer设置
3.使能定时器中断
4.函数
/* USER CODE BEGIN 0 */
uint32_t Timer = 0;
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
if(htim->Instance==TIM6)
{
Timer++;
}
}
/* USER CODE END 0 */
/**
* @brief The application entry point.
* @retval int
*/
int main(void)
{
/* USER CODE BEGIN 1 */
uint8_t Counter = 0;
/* USER CODE END 1 */
/* MCU Configuration--------------------------------------------------------*/
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
/* USER CODE BEGIN Init */
/* USER CODE END Init */
/* Configure the system clock */
SystemClock_Config();
/* USER CODE BEGIN SysInit */
/* USER CODE END SysInit */
/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_TIM6_Init();
/* USER CODE BEGIN 2 */
HAL_TIM_Base_Start_IT(&htim6); //开启定时器中断
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
if(Timer == 1000) //1SLED取反
{
Timer = 0;
Counter ++;
HAL_GPIO_TogglePin(LED1_GPIO_Port,LED1_Pin);
}
if(Counter == 20) //20次关掉定时器
{
Counter = 0;
HAL_TIM_Base_Stop_IT(&htim6); //关闭定时器中断
}
}
/* USER CODE END 3 */
}