大家好、
以下内容: MSP430F5438A:1%的电路板将出现应用程序代码停止 :
之前、代码启动时钟两次-一次在引导加载程序中、一次在主代码中。 引导加载程序中的时钟启动已经被移除、现在依靠1MHz 运行的缺省条件来运行处理器。
示例代码不表示您需要等待任何东西才能稳定执行、这是正确的吗?
代码未运行 FLL 或内部振荡器、以下设置是否正确且顺序正确以实现最佳运行?
以1MHz 运行以校验内存后,它将跳转到主应用程序 ,在该应用程序中设置以下的功率和时钟:
WDTCTL = WDTPW + WDTHOLD; //停止看门狗计时器 __disable_interrupt (); //禁用全局中断 /*---- 向上移动到全功率--- * SetVCoreUp (0x01); SetVCoreUp (0x02); SetVCoreUp (0x03); /*--将 XT2设置为12MHz --- * P5SEL |= BIT2+BIT3; //端口选择 XT2 UCSCTL6 &=~XT2OFF; //启用 XT2 //将驱动强度[01]设置为12MHz UCSCTL6 &=~(XT2DRIVE1); //关闭驱动位1 UCSCTL6 |= XT2DRIVE0; //打开驱动位0 /*------ 将 XT1设置为32kHz --- * P5SEL |= BIT4+BIT5; //选择 XT1 UCSCTL6 &=~(XT1OFF); // XT1打开 //将驱动强度[00]设置为32kHz UCSCTL6 &=~(XT1DRIVE1); //关闭驱动位1 UCSCTL6 &=~(XT1DRIVE0); //关闭驱动位1 /*---- 直到 XT1、XT2和 DCO 稳定--- */ { UCSCTL7 &=~(XT2OFFG + XT1LFOFFG + XT1HFOFFG + DCOFFG); //清除 XT2、XT1、DCO 故障标志 SFRIFG1 &=~OFIFG; //清除故障标志 } while (SFRIFG1&OFIFG); //测试振荡器故障标志 /*---- 设置时钟源--- * UCSCTL4 = 0X0055;//Acclk= xt1、SMclk = XT2、MCLK = XT2clk UCSCTL1 |= DISMOD;//关闭调制 /*--- 然后继续---- *
谢谢、请告诉我!!
簧片