找回密码
 立即注册
查看: 2527|回复: 7

帮忙问 请教关于STC8H1K17 想用外部晶振的事宜

[复制链接]
  • 打卡等级:偶尔看看III
  • 打卡总天数:45
  • 最近打卡:2025-12-16 15:39:07

36

主题

287

回帖

2577

积分

超级版主

积分
2577
发表于 2023-3-10 11:07:12 | 显示全部楼层 |阅读模式
帮忙请教 :用STC8H1K17  做时间测量,想要外接晶振 12MHz。软件里设置  启动外部晶振;
参考了数据手册里的 外部晶振输入电路  和   参考范例 软件里设置 “选择系统时钟源”     没有反应...
  有个疑问:是只可以外接有源晶振   吗?

外部晶振输入电路.png
选择系统时钟源.png
QQ:3398500488
微信号:18106296592(小刘)
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:266
  • 最近打卡:2025-12-16 08:29:17

812

主题

1万

回帖

2万

积分

管理员

积分
21282
发表于 2023-3-10 11:26:30 | 显示全部楼层
可以接外部最普通的 2个PIN的晶振/[P1.7,P1.6],也可以外部直接时钟输入/P1.7
1.png
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:584
  • 最近打卡:2025-12-16 09:16:46
已绑定手机

49

主题

2368

回帖

8416

积分

论坛元老

积分
8416
发表于 2023-3-10 13:12:29 | 显示全部楼层
软件切换外部晶振时除了切换指令外,前面的扩展寄存器访问使能记得也要设置。

1.png
如果这些都设置妥当烧录到芯片里还是无法运行,用示波器测量振荡脚没有信号的话,就需要检查振荡电路了。
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:252
  • 最近打卡:2025-12-16 23:00:17

84

主题

7145

回帖

1万

积分

超级版主

积分
15237
发表于 2023-3-10 13:24:42 | 显示全部楼层
STC8系列、STC32系列,启动外部晶振或有源时钟输入,只需要执行下列几句即可:
        P_SW2  = 0x80;
        XOSCCR = 0xc0;                        //启动外部晶振
        while (!(XOSCCR & 1));        //等待时钟稳定(按需设置)
        CLKDIV = 0x00;                        //时钟不分频
        CLKSEL = 0x01;                        //选择外部晶振
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:51
  • 最近打卡:2025-12-12 16:05:07
已绑定手机

8

主题

12

回帖

268

积分

中级会员

积分
268
发表于 2025-12-7 17:16:39 | 显示全部楼层
乘风*** 发表于 2023-3-10 13:12
软件切换外部晶振时除了切换指令外,前面的扩展寄存器访问使能记得也要设置。

今天测试了有源晶振3.3V的  使用STC8H1K08   运行卡死,找不到原因,用外部无源晶振板子测试正常,有源的用不了,请问有测试过吗?
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:584
  • 最近打卡:2025-12-16 09:16:46
已绑定手机

49

主题

2368

回帖

8416

积分

论坛元老

积分
8416
发表于 2025-12-8 09:03:05 | 显示全部楼层
f5037*** 发表于 2025-12-7 17:16
今天测试了有源晶振3.3V的  使用STC8H1K08   运行卡死,找不到原因,用外部无源晶振板子测试正常,有源的 ...

如果用有源晶振的话XOSCCR寄存器的bit6置0:

截图202512080902096001.jpg
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:160
  • 最近打卡:2025-12-16 07:17:40

0

主题

61

回帖

740

积分

高级会员

积分
740
发表于 2025-12-8 20:58:32 | 显示全部楼层
有帮助,谢谢
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:51
  • 最近打卡:2025-12-12 16:05:07
已绑定手机

8

主题

12

回帖

268

积分

中级会员

积分
268
发表于 5 天前 | 显示全部楼层
乘风*** 发表于 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供电
回复

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-12-17 02:50 , Processed in 0.111634 second(s), 82 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表