新人求教:stc32g12k128接外晶振问题
我的stc32g12k128想使用外部晶振,但反复试验总不能成功,换了很多晶振,结果都一样,从程序上看是卡在等待频率稳定语句上了,把该语句去掉,程序就正常运行,但运行频率不是外晶振的频率。晶振电路采用的是数据手册上的电路。开启外晶振语句也是数据手册上范例中的。开始以为是买的晶振是坏的,另找了两家买了还是不行,晶振频率从11M到32M试过多款。用万用表测量时晶振两脚的电压都是VCC值。所以判断不是晶振问题。我使用的是降龙棍核心板,不知是哪个环节出的问题,求大神们指点一下。#include "mcu_initial.h"
#include "STC32G.H"
#include "tft089_driver.h"
void mcu_initial()
{
EAXFR = 1; //使能访问 XFR
CKCON = 0x00; //设置外部数据总线速度为最快
WTST = 0x00; //设置程序代码等待参数,
//赋值为 0 可将 CPU 执行程序的速度设置为最快
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
// XOSCCR |= 0xe0; //启动外部晶振
XOSCCR=0xfe; //启动外部晶振
//delay(22);
while (!(XOSCCR&1));//等待时钟稳定
CLKDIV = 0x02; //时钟不分频
CLKSEL = 0x01;
MCLKOCR=0x0a;//P5.4输出10分频的系统时钟,供测量用
P_SW1=0x04;
HSSPI_CFG2=0x20;//启动高速模式
SPCTL = 0xd2; //使能 SPI 主机模式 .用较高速度
SPSTAT = 0xc0; //清中断标志
//ESPI = 1; //使能 SPI 中断
EA = 1;
BL=1;
}
我使用的是降龙棍核心板,不知是哪个环节出的问题====分析问题,你要贴上原理图的
深圳国芯人工智能有限公司-核心功能实验板 (stcai.com)
https://www.stcai.com/filedownload/618414
P1.6/P1.7可以外接晶振,那 P1.6/P1.7上的外围其他电路要去掉
如焊接了这部分电路,则必须去除 R24/R25
特殊功能寄存器不要随意设置
参考数据手册上的范例就可成功
zhp 发表于 2022-12-28 16:24
特殊功能寄存器不要随意设置
参考数据手册上的范例就可成功
谢谢大神回复,我考虑到外围元件会影响起振,所以把对应的LED(LED8和LED9)拆掉了,但没起到预期效果,我明天再拆R24和R25试试 本帖最后由 丽江春水 于 2023-1-12 14:56 编辑
我对时钟源的使用有错识误,但不知错在哪时机,前面是用外晶振遇到困难 ,现在想用32K内部时钟源,也遇到困难。无法打到32K内部时钟源。与使用外晶振时的情况一样。f:\QQ图片.png 卡在等待频率稳定上,无法进行一去。 把你实际的原理图的PDF发上来,再拍个实际的图发上来
页:
[1]
2