MultiTimer,一款可無限擴(kuò)展的軟件定時(shí)器
1. MultiTimer
今天給大家?guī)淼拈_源項(xiàng)目是 MultiTimer,一款可無限擴(kuò)展的軟件定時(shí)器,作者0x1abin,目前收獲 95 個(gè) star,遵循 MIT 開源許可協(xié)議。
項(xiàng)目地址:https://github.com/0x1abin/MultiTimer
2. 移植MultiTimer
2.1. 移植思路
開源項(xiàng)目在移植過程中主要參考項(xiàng)目的readme文檔,一般只需兩步:
- ① 添加源碼到裸機(jī)工程中;
- ② 實(shí)現(xiàn)需要的接口;
2.2. 準(zhǔn)備裸機(jī)工程
本文中我使用的是小熊派IoT開發(fā)套件,主控芯片為STM32L431RCT6:
- 配置一個(gè)串口用于打印信息
- printf重定向
2.3. 添加MultiTimer到工程中
① 復(fù)制MultiTimer源碼到工程中:
3. 使用MultiTimer
使用時(shí)包含頭文件:
如果遇到multi_timer.c文件中NULL宏定義報(bào)錯(cuò),則在multi_timer.h中添加頭文件即可。
3.1. 創(chuàng)建Timer對(duì)象
/* USER CODE END PV */
3.2. Timer回調(diào)函數(shù)
-
-
-
-
-
-
-
-
-
-
-
-
/* Private user code ---------------------------------------------------------*//* USER CODE BEGIN 0 */void timer1_callback(){ printf("timer1 timeout!\r\n");}
void timer2_callback(){ printf("timer2 timeout!\r\n");}/* USER CODE END 0 */
3.3. 初始化并啟動(dòng)Timer
始化定時(shí)器對(duì)象,注冊(cè)定時(shí)器回調(diào)處理函數(shù),設(shè)置定時(shí)時(shí)間(ms),循環(huán)定時(shí)觸發(fā)時(shí)間:
-
-
-
-
-
-
-
-
-
-
-
-
/* USER CODE BEGIN 2 */printf("multi timer test...\r\n");
//重復(fù)計(jì)時(shí),周期為1000次,即1000ms=1stimer_init(