帮忙问 请教关于STC8H1K17 想用外部晶振的事宜
帮忙请教 :用STC8H1K17做时间测量,想要外接晶振 12MHz。软件里设置启动外部晶振;参考了数据手册里的 外部晶振输入电路和 参考范例 软件里设置 “选择系统时钟源” 没有反应...
有个疑问:是只可以外接有源晶振 吗?
可以接外部最普通的 2个PIN的晶振/,也可以外部直接时钟输入/P1.7
软件切换外部晶振时除了切换指令外,前面的扩展寄存器访问使能记得也要设置。
如果这些都设置妥当烧录到芯片里还是无法运行,用示波器测量振荡脚没有信号的话,就需要检查振荡电路了。
STC8系列、STC32系列,启动外部晶振或有源时钟输入,只需要执行下列几句即可:
P_SW2= 0x80;
XOSCCR = 0xc0; //启动外部晶振
while (!(XOSCCR & 1)); //等待时钟稳定(按需设置)
CLKDIV = 0x00; //时钟不分频
CLKSEL = 0x01; //选择外部晶振
乘风飞扬 发表于 2023-3-10 13:12
软件切换外部晶振时除了切换指令外,前面的扩展寄存器访问使能记得也要设置。
今天测试了有源晶振3.3V的使用STC8H1K08 运行卡死,找不到原因,用外部无源晶振板子测试正常,有源的用不了,请问有测试过吗? f503724221 发表于 2025-12-7 17:16
今天测试了有源晶振3.3V的使用STC8H1K08 运行卡死,找不到原因,用外部无源晶振板子测试正常,有源的 ...
如果用有源晶振的话XOSCCR寄存器的bit6置0:
有帮助,谢谢 乘风飞扬 发表于 2025-12-8 09:03
如果用有源晶振的话XOSCCR寄存器的bit6置0:
void OSC_SET(void)
{
P1IE &= ~0xc0; //关闭晶振IO数字引脚
//XOSCCR = 0xD0; //此处1000 0000----为外部有源晶振 1100 0000----为无源晶振D0----无源24M
XOSCCR = 0x80; //此处1000 0000----为外部有源晶振 1100 0000----为无源晶振90----有源24M
//while(!(HIRCCR&1));
while(!(XOSCCR&1));
CLKDIV = 0x00;
CLKSEL = 0x01; //切换到外部晶振
HIRCCR = 0x00; //关闭内部高速时钟
IRC32KCR = 0x00; //关闭内部32K IRC
X32KCR = 0x00; //关闭外部32K晶振
}
测试了 还是跑不起来,用的3.3V有源晶振,示波器有信号,不知到官方对电压有没有要求,单片机是用的5V供电 f503724221 发表于 2025-12-12 16:07
void OSC_SET(void)
{
P1IE &= ~0xc0; //关闭晶振IO数字引脚
问题解决没有?我今天也在测试,没跑通。 whctco 发表于 2026-1-26 20:54
问题解决没有?我今天也在测试,没跑通。
目前没有解决,没办法 换芯片了
页:
[1]