江哥 发表于 2026-2-14 01:30:48

STC8G 低速 IRC

#include "STC8G.h"

void IRC_32KHz(void){
    P_SW2   |= 0x80;         // EAXFR = 1,允许访问XFR
    IRC32KCR = 0x80;                // 使能内部32kHz低速IRC
    CLKSEL   = 0x03;               // 0x00=内部高精度IRC,0x01=外部晶振,0x03: 内部32kHz低速IRC   
    CLKDIV   = 0xff;          // 分频 0x00~0xff
}

void main(void){
    P5M1 &= ~0x10; P5M0 |= 0x10;      
    IRC_32KHz();   
    while (1){
      P54 = 0;
      P54 = 1;
    }
}



实测30Hz ,占空比 80%(while看起来是5个时钟周期) ,
那么 30 x5 x256 =38.400kHz,
和文档里面的32kHz 差别这么大?


神农鼎 发表于 2026-2-14 09:49:02

LIRC, 是 0.15uA的低功耗,
未设计 制造精度补偿电路,
未设计 温漂补偿电路,
未设计 压漂/电压漂移,补偿电路

20K ~ 50KHz

神农鼎 发表于 2026-2-14 09:51:14

内部高速 HIRC时钟, 是 300uA的低功耗,
有专门设计 制造精度补偿电路,
有专门设计 温漂补偿电路,
有专门设计 压漂/电压漂移,补偿电路
满足串口通信要求,这 300uA 就很难省掉


江哥 发表于 2026-2-14 14:09:26

神农鼎 发表于 2026-2-14 09:49
LIRC, 是 0.15uA的低功耗,
未设计 制造精度补偿电路,
未设计 温漂补偿电路,


谢谢

vb2002 发表于 2026-2-25 20:58:55

用外部晶振吧.
页: [1]
查看完整版本: STC8G 低速 IRC