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