[FACE=宋体][SIZE=9pt]我买的是msp430F5438的开发板,发现设置外部晶振时钟时晶振出错标志老是清不掉,一打开XT1晶振出错标志位OFIFG就自动置位,百死不得其解!我找了好多代码,包括教程,以及TI的。以下是TI官方代码,但仍然跳不出循环:[/FACE][/SIZE][P][/P][P][FACE=宋体][SIZE=12px]P7SEL |= 0x03; // Select XT1[/FACE][/SIZE][/P][P][FACE=宋体][SIZE=12px] UCSCTL6 &= ~(XT1OFF); // XT1 On[/FACE][/SIZE][/P][P][FACE=宋体][SIZE=12px] UCSCTL6 |= XCAP_3; // Internal load cap[/FACE][/SIZE][/P][P][FACE=宋体][SIZE=12px]
[/FACE][/SIZE][/P][P][FACE=宋体][SIZE=12px] // Loop until XT1,XT2 & DCO stabilizes[/FACE][/SIZE][/P][P][FACE=宋体][SIZE=12px] do[/FACE][/SIZE][/P][P][FACE=宋体][SIZE=12px] {[/FACE][/SIZE][/P][P][FACE=宋体][SIZE=12px] UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + XT1HFOFFG + DCOFFG);[/FACE][/SIZE][/P][P][FACE=宋体][SIZE=12px] // Clear XT2,XT1,DCO fault flags[/FACE][/SIZE][/P][P][FACE=宋体][SIZE=12px] SFRIFG1 &= ~OFIFG; // Clear fault flags[/FACE][/SIZE][/P][P][FACE=宋体][SIZE=12px] }while (SFRIFG1&OFIFG); // Test oscillator fault flag[/FACE][/SIZE][/P][P][FACE=宋体][SIZE=12px]
[/FACE][/SIZE][/P][P][FACE=宋体][SIZE=12px] UCSCTL6 &= ~(XT1DRIVE_3); // Xtal is now stable, reduce drive[/FACE][/SIZE][/P][P][/P][P][FACE=宋体][SIZE=12px] [/FACE][/SIZE][/P][P][FACE=宋体][SIZE=12px] 缘何?缘何啊?[/FACE][/SIZE][/P] |