一、转换公式
首先提一个问题:关于32.768kHZ是多长,一秒有多少个kHZ?
二、代码示例
代码实现了一个看门狗定时器功能,主要流程如下:
初始化硬件(低速时钟、LED、按键)。
配置看门狗,设置回调函数 wdt_event_handler,并分配喂狗通道。
启动看门狗后,主循环持续检测按键 BUTTON_1:
若按键按下,则喂狗(清零计数器),同时点亮 LED2 指示。
若未及时按键,看门狗超时(约 2 秒,由默认配置决定),触发回调。
在回调中,点亮所有 LED 并拉高 P0.12,但硬件会在两个 32.768 kHz 时钟周期后强制复位芯片,因此 LED 只瞬间亮起,无法持续。
关于 32.768 kHz 的说明
你之前困惑的 32768(32.768 kHz)是指低速时钟(LFCLK)的频率。
频率 = 每秒振荡次数,所以 32.768 kHz 表示每秒钟振荡 32,768 次。
一个周期时长 = 1 / 32768 秒 ≈ 30.5 微秒。(代码中想delay_ms(1000)是不能实现的)
看门狗超时后,硬件会等待两个 LFCLK 周期(约 61 微秒) 才复位,因此回调中无法执行耗时操作(如延时 1 秒),系统很快复位。

-
1 kHz = 1000 Hz(赫兹,每秒振荡次数)
-
32.768 kHz = 32,768 Hz,表示每秒钟振荡 32,768 次。
所以,一个周期的时间 = 1 / 32,768 秒 ≈ 30.5 微秒(μs)。
看门狗里说的"两个 LFCLK 周期"就是 2 × (1 / 32768) 秒 ≈ 61 微秒。
"一秒有多少个 kHz" 这个问法不准确。如果你想问"一秒有多少个周期",那就是 32,768 个周期;如果想问"一秒有多少个 kHz",那 1 秒就是 1/1000 个 kHz,这没意义。
简单记:kHz 是频率单位,1 kHz = 1000 次/秒。32.768 kHz 就是每秒钟 32,768 次。
