玩转 ESP32 + Arduino (七) Ticker定时库,base64转换,OTA, SSD1306显示QRcode二维码

一. Ticker 定时库

Ticker 是ESP32自带库

注意: 不建议使用Ticker回调函数来阻塞IO操作(网络、串口、文件);可以在Ticker回调函数中设置一个标记,在loop函数中检测这个标记;
对于arg,必须是 char, short, int, float, void, char 之一;

1. 定时状态获取 .active();

/**
 * Ticker是否激活状态
 * @return bool true表示ticker启用
 */
bool active();

2. 终止定时器 .detach()

/**
 * 停止Ticker
 */
void detach();

3. once() —— xx秒后只执行一次

/**
 * xx秒后只执行一次
 * @param seconds 秒数
 * @param callback 回调函数
 */
void once(float seconds, callback_function_t callback);

/**
 * xx秒后只执行一次
 * @param seconds 秒数
 * @param callback 回调函数
 * @param arg 回调函数的参数
 */
void once(float seconds, void (*callback)(TArg), TArg arg)
示例: 一个传参,一个不传参
#include "Arduino.h"
#include "Ticker.h"

Ticker t1;
Ticker t2;

void func1()
{
  Serial.println("我是t1的回调,我没参数");
}
void func1(int a)
{
  Serial.print("我是t2的回调,我的参数是:");
  Serial.println(a);
}

void setup()
{
  Serial.begin(115200);
  if (1)
  {
    t1.once(10, func1);
    t2.once(20, func1, 8);
    //t1 t2 方法名都叫func1, 但其实是不同的方法, 这涉及到一个方法重载的概念
  }
}

void loop()
{
  Serial.println("我来证明我没被阻塞,也没法阻塞Ticker");
  delay(2700);
}
  • 8
    点赞
  • 73
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值