单片机晶振不起振,有可能复位电路那边有问题,你可以试试用内部复位,如果内部复位晶振起振正常,那就是你原来的复位电路有问题;再一个是看看手册,是否上电的时候默认内部振荡,要软件选择外部晶体振荡?
430单片机需要在程序内设定使用哪个外接晶振的,具体可以参考官方例程。
//******************************************************************************
// MSP-FET430P140 Demo - Basic Clock, MCLK Sourced from HF XTAL XT2
//
// Description: Proper selection of an external HF XTAL for MCLK is shown
// by first polling the OSC fault until XTAL is stable - only then is MCLK
// sourced by XT2. MCLK is on P5.4.
// ACLK= n/a, MCLK= XT2, SMCLK= DCO,
// //* HF XTAL NOT INSTALLED ON FET *//
// //* Min Vcc required varies with MCLK frequency - refer to datasheet *//
//
// MSP430F149
// -----------------
// /|\| XT2IN|-
// | | | XTAL (455k - 8Mhz)
// --|RST XT2OUT|-
// | |
// | P5.4|-->MCLK = XTAL
//
//
// M. Buccini / G. Morton
// Texas Instruments Inc.
// May 2005
// Built with Code Composer Essentials Version: 1.0
//******************************************************************************
#include
void main(void)
{
volatile unsigned int i;
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
P5DIR |= 0x10; // P5.4= output direction
P5SEL |= 0x10; // P5.4= MCLK option select
BCSCTL1 &= ~XT2OFF; // XT2= HF XTAL
do
{
IFG1 &= ~OFIFG; // Clear OSCFault flag
for (i = 0xFF; i > 0; i--); // Time for flag to set
}
while ((IFG1 & OFIFG)); // OSCFault flag still set?
BCSCTL2 |= SELM_2; // MCLK= XT2 (safe)
for (;;); // Do nothing
}
10P的电容好像有点小了吧?也换成20P的。
是你的片子,坏了吧或者是晶振有问题吧。