现象:F149带显示一块板,反复上下电,有上电不执行程序(凑巧出现 1-2次,表现是白屏无显示),如果1-2次不执行程序的过程中,马上上电,还是不执行,要过个几分钟,相当于电放光了,才可以执行程序。白屏,说明还没有执行到LCD初始化(程序还没到全屏显示),去测试了一下晶振,没起振,无波形。
然后监测VDD电压3.3V 及复位信号,当VDD电压低于0. 2V 时 在 0. 15-0. 17V之间 马上上电, 就会出现白屏无法启动这种情况(21 ic的一个问题给了莫大帮助)!用示波器看复位波形很不正常,问题得以重现。

//=============================================================================================
// 函 数 名: InitBCM() - 时钟初始化
// 功 能: 确定晶体,采用背频方式,频率为460.8kHz,并外供。
// 调用函数: /
// 入口参数: /
// 出口参数: /
// 全局变量: /
// 备 注: /
//=============================================================================================
void InitBCM()
{
//"目前MCU板上是3.6864MHZ
WDTCTL=WDTPW+WDTHOLD; //"Stop WDT
BCSCTL1&=~(XTS+XT2OFF); //"ACLK不分频=XT2,XT2选选择高频晶体
do
{
uchar i;
IFG1&=~OFIFG; //"Clear OSCFault flag
for(i=0xFF;i>0;i--); //" Time for flag to set
}
while((IFG1&OFIFG)!= 0); //"OSCFault flag still set?
BCSCTL2|=SELM1+SELS; //"MCLK = LFXT1 (safe)
BCSCTL2|=(DIVM1+DIVM0+DIVS1+DIVS0); //"MCLK4分频
P5SEL|=BIT5;
}
