LM3S811时钟设置PLL的问题

Other Parts Discussed in Thread: LM3S811

本人使用的器件是LM3S811。因需要25M左右的方波输出,采用的是PWM模块是需要使用PLL对外部6MHz晶振进行倍频,系统时钟200MHz。使用的时钟设置代码如下:

SysCtlLDOSet(SYSCTL_LDO_2_75V);//设置LDO电压为2.75V

SysCtlDelay(3000);//LDO电压稳定

SysCtlClockSet(

SYSCTL_SYSDIV_1

|SYSCTL_USE_PLL

|SYSCTL_OSC_MAIN

|SYSCTL_XTAL_6MHZ

);//设置时钟

SysCtlDelay(3000);

//----分割线------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

然后我用配置了PWM输出

   SysCtlPeripheralEnable(SYSCTL_PERIPH_PWM);

   GPIOPinTypePWM(GPIO_PORTD_BASE,GPIO_PIN_0);

PWMGenConfigure(PWM_BASE, PWM_GEN_0,

PWM_GEN_MODE_UP_DOWN |

                   PWM_GEN_MODE_NO_SYNC);

//!!!

 PWMGenPeriodSet(PWM_BASE, PWM_GEN_0, 8);

//!!!

PWMPulseWidthSet(PWM_BASE, PWM_OUT_0,

                    PWMGenPeriodGet(PWM_BASE,PWM_OUT_0)/2+1);

   PWMOutputState(PWM_BASE, PWM_OUT_0_BIT, true);

   PWMGenEnable(PWM_BASE, PWM_GEN_0);

如果时钟正确配置,那么输出的频率应该是200M/8=25MHz

但是,最后得出的PWM频率大约1.5MHz,说明实际使用的时钟却是12MHz,时钟配置不正确。何故?(我已经实现设置了LDO电压)