//外部晶振 8M 电容 20pF
// MCLK=SMCLK=XT2(8M) ACLK=32768KHz
P5SEL |= 0x0C; // Port select XT2
UCSCTL6 &= ~(XT2OFF); // Set XT2 On
UCSCTL3 |= SELREF_2; UCSCTL4 |= SELA_2; UCSCTL6 |= XT2BYPASS;
// Loop until XT1,XT2 & DCO stabilizes
do
{
UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + DCOFFG);// Clear XT2,XT1,DCO fault flags
SFRIFG1 &= ~OFIFG; // Clear fault flags
for(unsigned char t=0xFF;t>0;t–);
}while (SFRIFG1&OFIFG); // Test oscillator fault flag
UCSCTL6 &= ~ XT2DRIVE1; //01:8MHz~16MHz , dafault is 11:26MHz~32MHz UCSCTL4 |= SELS__XT2CLK + SELM__XT2CLK; //SOURCE SEL
UCSCTL5 |= DIVM__1 + DIVS__1 ;
结果:SMCLK才1MHz ,怀疑可能还是使用的是内部1MHz,求解!!!谢谢
Young Hu:
do
{
UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + DCOFFG);// Clear XT2,XT1,DCO fault flags
SFRIFG1 &= ~OFIFG; // Clear fault flags
for(unsigned char t=0xFF;t>0;t–);
}while (SFRIFG1&OFIFG); // Test oscillator fault flag
这部分程序能过去么?
Peter_Zheng:
最简单的办法是去官网找5310的demo code,参照例程代码,对比是否有不正确的地方。然后再进行电路检查。
Gump Miller:
回复 Young Hu:
可以过去的
Gump Miller:
回复 Young Hu:
能过去的
Gump Miller:
回复 Peter_Zheng:
是参考官网代码的
TI中文支持网



