• 大小: 6.31MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-11-08
  • 语言: 其他
  • 标签: stm32  ticker  hal  

资源简介

基于STM32 HAL库的定时任务调度器例程。
详情可以搜索博文《使用HAL库开发STM32(基于F4):系统时间基础及进阶使用》。

资源截图

代码片段和文件信息

/* USER CODE BEGIN Header */
/**
 ******************************************************************************
 * @file           : main.c
 * @brief          : Main program body
 ******************************************************************************
 * @attention
 *
 * 

© Copyright (c) 2019 STMicroelectronics.
 * All rights reserved.


 *
 * This software component is licensed by ST under BSD 3-Clause license
 * the “License“; You may not use this file except in compliance with the
 * License. You may obtain a copy of the License at:
 *                        opensource.org/licenses/BSD-3-Clause
 *
 ******************************************************************************
 */
/* USER CODE END Header */

/* Includes ------------------------------------------------------------------*/
#include “main.h“

#include “lib_ticker.h“

void SystemClock_Config(void);
static void MX_GPIO_Init(void);

LibTicker task1 task2; // 声明两个对象

int flag = 0;
void task1callback(int num) {
if (flag) {
flag = 0;
} else {
flag = num;
}
}

int main(void) {
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();

task1.attach(500 task1callback 233); // task1以500毫秒为间隔执行task1callback(233);
task2.once(4000 [] {task1.detach();}); // task2在4000毫秒后运行一次,停止task1的工作

while (1) {
LibTicker::handle(); // 执行已就绪的任务
}
}

/**
 * @brief System Clock Configuration
 * @retval None
 */
void SystemClock_Config(void) {
RCC_OscInitTypeDef RCC_OscInitStruct = { 0 };
RCC_ClkInitTypeDef RCC_ClkInitStruct = { 0 };

/** Configure the main internal regulator output voltage
 */
__HAL_RCC_PWR_CLK_ENABLE();
__HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);
/** Initializes the CPU AHB and APB busses clocks
 */
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;
RCC_OscInitStruct.HSIState = RCC_HSI_ON;
RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE;
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
Error_Handler();
}
/** Initializes the CPU AHB and APB busses clocks
 */
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK
| RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2;
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSI;
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;
RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;

if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct FLASH_LATENCY_0) != HAL_OK) {
Error_Handler();
}
}

/**
 * @brief GPIO Initialization Function
 * @param None
 * @retval None
 */
static void MX_GPIO_Init(void) {

/* GPIO Ports Clock Enable */
__HAL_RCC_GPIOA_CLK_ENABLE();
__HAL_RCC_GPIOB_CLK_ENABLE();

}

/* USER CODE BEGIN 4 */

/* USER CODE END 4 */

/**
 * @brief  This function is executed in case of error occurrence.
 * @retval None
 */

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2019-10-24 11:41  stm32f405ticker\
     文件       31704  2019-10-24 11:38  stm32f405ticker\.cproject
     文件        6701  2019-10-24 11:38  stm32f405ticker\.mxproject
     文件        1354  2019-10-24 11:38  stm32f405ticker\.project
     目录           0  2019-10-24 10:20  stm32f405ticker\.settings\
     文件        2373  2019-10-24 10:20  stm32f405ticker\.settings\language.settings.xml
     目录           0  2019-10-24 10:20  stm32f405ticker\Core\
     目录           0  2019-10-24 10:21  stm32f405ticker\Core\Inc\
     文件        2181  2019-10-24 10:21  stm32f405ticker\Core\Inc\main.h
     文件       16367  2019-10-24 10:21  stm32f405ticker\Core\Inc\stm32f4xx_hal_conf.h
     文件        2107  2019-10-24 10:21  stm32f405ticker\Core\Inc\stm32f4xx_it.h
     目录           0  2019-10-24 10:28  stm32f405ticker\Core\Src\
     文件        3957  2019-10-24 11:28  stm32f405ticker\Core\Src\main.cpp
     文件        2432  2019-10-24 10:21  stm32f405ticker\Core\Src\stm32f4xx_hal_msp.c
     文件        5567  2019-10-24 10:21  stm32f405ticker\Core\Src\stm32f4xx_it.c
     文件        4058  2019-10-24 10:20  stm32f405ticker\Core\Src\syscalls.c
     文件        2851  2019-10-24 10:20  stm32f405ticker\Core\Src\sysmem.c
     文件       28181  2019-07-23 14:39  stm32f405ticker\Core\Src\system_stm32f4xx.c
     目录           0  2019-10-24 10:20  stm32f405ticker\Core\Startup\
     文件       24466  2019-07-23 14:39  stm32f405ticker\Core\Startup\startup_stm32f405rgtx.s
     目录           0  2019-10-24 11:41  stm32f405ticker\Debug\
     目录           0  2019-10-24 11:41  stm32f405ticker\Debug\Core\
     目录           0  2019-10-24 11:41  stm32f405ticker\Debug\Core\Src\
     文件        3007  2019-10-24 11:41  stm32f405ticker\Debug\Core\Src\main.d
     文件      987964  2019-10-24 11:41  stm32f405ticker\Debug\Core\Src\main.o
     文件         726  2019-10-24 11:41  stm32f405ticker\Debug\Core\Src\main.su
     文件        2983  2019-10-24 11:41  stm32f405ticker\Debug\Core\Src\stm32f4xx_hal_msp.d
     文件      975744  2019-10-24 11:41  stm32f405ticker\Debug\Core\Src\stm32f4xx_hal_msp.o
     文件          48  2019-10-24 11:41  stm32f405ticker\Debug\Core\Src\stm32f4xx_hal_msp.su
     文件        3035  2019-10-24 11:41  stm32f405ticker\Debug\Core\Src\stm32f4xx_it.d
     文件      977076  2019-10-24 11:41  stm32f405ticker\Debug\Core\Src\stm32f4xx_it.o
............此处省略151个文件信息

评论

共有 条评论