求大神支招,关于MSP430F5438A的25M晶振问题

2019-03-24 10:39发布

手头有个430的launchpad,还有个5438A的最小系统板,就用这两个结合SBW调试那个最小系统板,板子上面焊的是25M晶振,但是调试的时候发现用25M晶振老是出错,本来led应该闪烁,但是一直亮,但是对MCLK二分频之后就可以正常跑了,代码如下:

#include <msp430x54x.h>      
#define uint unsigned int
#define uchar unsigned char
#define CPU_F ((double)12500000)
#define delayus(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0))
#define delayms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0))
void main(void)               
{
  WDTCTL = WDTPW + WDTHOLD;       //关闭看门狗
  P5SEL |= 0x0C; // Port select XT2
  UCSCTL6&= ~XT2OFF; // Ena××e XT2 even if not used
  UCSCTL3|= SELREF_2; // FLLref = REFO
  UCSCTL4|= SELA_2; // ACLK=REFO,SMCLK=DCO,MCLK=DCO
  do
  {
  UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + DCOFFG);
  SFRIFG1 &= ~OFIFG; // Clear fault flags
  }while (SFRIFG1&OFIFG); // Test oscillator fault flag
  UCSCTL4 |= SELS_5 + SELM_5; // SMCLK=MCLK=XT2
  UCSCTL5|=DIVM_1+DIVS_2;
  P8DIR=0xff;  //P8设置为输出
  while(1)
  {
    P8OUT &= ~(BIT0+BIT1);  //P8.0 = 0,LED亮
    delayms(1000);
    P8OUT |= BIT0+BIT1;   //P8.0 = 1,LED灭
    delayms(1000);
  }
}

求大神告知怎么回事??
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
jianping-sun
1楼-- · 2019-03-24 21:14
 精彩回答 2  元偷偷看……
jianping-sun
2楼-- · 2019-03-25 00:11
< :TI_MSP430_内容页_SA7 --> 新人果断没尊严啊。。。。
乱世流年
3楼-- · 2019-03-25 02:51
看起来问题应该不大,你的延时太短了,25MHz的速度太快了,把延时函数的数增大看看。
Study_Stellaris
4楼-- · 2019-03-25 04:36
 精彩回答 2  元偷偷看……
lcofjp
5楼-- · 2019-03-25 06:38
5xx系列单片机是要设置内核电压的,内核电压不够是跑不了高频率的,所以你应该先设置内核电压。
liuxiaowa
6楼-- · 2019-03-25 07:33
我有配置好的程序,直接挂32MHz晶振,很稳定

一周热门 更多>

相关问题

    相关文章