如何在 ESP32 的任何引脚上输出 2.048MHz 时钟

你可以使用 LEDC 定时器(通常用于 PWM)在任何具有输出能力的 GPIO 引脚上输出 50% 占空比、3.3V P-P 幅度的时钟。

首先,

ledc_clock_setup.cpp
#include <driver/ledc.h>

然后设置定时器。你只需在启动时执行一次,loop 函数中不需要代码。

ledc_clock_setup.cpp
/**
 * 在 GPIO33 上设置 2.048MHz 时钟输出
 */
ledc_timer_config_t ledc_timer = {
    .speed_mode = LEDC_HIGH_SPEED_MODE,
    .bit_num    = LEDC_TIMER_2_BIT,
    .timer_num  = LEDC_TIMER_0,
    .freq_hz    = 2048000
};
ledc_channel_config_t ledc_channel = {
    .gpio_num   = GPIO_NUM_33,
    .speed_mode = LEDC_HIGH_SPEED_MODE,
    .channel    = LEDC_CHANNEL_0,
    .timer_sel  = LEDC_TIMER_0,
    .duty       = 2
};
ledc_timer_config(&ledc_timer);
ledc_channel_config(&ledc_channel);

Check out similar posts by category: ESP8266/ESP32