日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > > strongerHuang
[導(dǎo)讀]關(guān)注星標(biāo)公眾號,不錯過精彩內(nèi)容轉(zhuǎn)自?|Mculover6661.MultiTimer今天給大家?guī)淼拈_源項(xiàng)目是MultiTimer,一款可無限擴(kuò)展的軟件定時器,作者0x1abin,目前收獲95個star,遵循MIT開源許可協(xié)議。MultiTimer是一個軟件定時器擴(kuò)展模塊,可無限...


轉(zhuǎn)自 | Mculover666


1. MultiTimer

今天給大家?guī)淼拈_源項(xiàng)目是 MultiTimer,一款可無限擴(kuò)展的軟件定時器,作者0x1abin,目前收獲 95 個 star,遵循 MIT 開源許可協(xié)議。


MultiTimer 是一個軟件定時器擴(kuò)展模塊,可無限擴(kuò)展你所需的定時器任務(wù),取代傳統(tǒng)的標(biāo)志位判斷方式, 更優(yōu)雅更便捷地管理程序的時間觸發(fā)時序。


項(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:


移植之前需要準(zhǔn)備一份裸機(jī)工程,我使用STM32CubeMX生成,需要初始化以下配置:


  • 配置一個串口用于打印信息
  • printf重定向

2.3. 添加MultiTimer到工程中

① 復(fù)制MultiTimer源碼到工程中:


② 在keil中添加 MultiTimer的源碼文件:


③ 將MultiTimer頭文件路徑添加到keil中:


3. 使用MultiTimer

使用時包含頭文件:


#include "multi_timer.h"
如果遇到multi_timer.c文件中NULL宏定義報錯,則在multi_timer.h中添加頭文件即可。


3.1. 創(chuàng)建Timer對象

/* USER CODE BEGIN PV */struct Timer timer1;struct Timer timer2;
/* 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. 初始化并啟動Timer

始化定時器對象,注冊定時器回調(diào)處理函數(shù),設(shè)置定時時間(ms),循環(huán)定時觸發(fā)時間:


/* USER CODE BEGIN 2 */printf("multi timer test...\r\n");
//重復(fù)計(jì)時,周期為1000次,即1000ms=1stimer_init(
本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉