資源簡介
基于STM32 HAL庫的定時任務調度器例程。
詳情可以搜索博文《使用HAL庫開發STM32(基于F4):系統時間基礎及進階使用》。
詳情可以搜索博文《使用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.xm
?????目錄???????????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個文件信息
- 上一篇:最優化方法及其應用
- 下一篇:華北電力大學高電壓技術ppt.pdf
評論
共有 條評論