430单片机OFIFG晶振出错标志位清不掉

楼主
430单片机OFIFG晶振出错标志位清不掉
[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]
1楼
[P]应该重点检查一下晶振负载电容的配置,在这里你软件已有配置过内部的电容了。再检查外部配置电容是否用上了。如果重复软硬件都做配置了,电容无过可能导致晶振荡源无法起振。[/P][P]另外调试时,建议调试时试着用“跳过”这部分的方式来做调试看。[/P]
2楼
注意下FLL的参考时钟源。

电脑版 Page created in 0.1572 seconds width 3 queries.