本帖最后由 xusnwise 于 2011-7-13 09:14 编辑
我的意思是,我的CPU使用HSE工作在4M,连接USB时无法通信。
如果CPU使用PLL配置在24M,连接USB可以工作。
不连接USB,也让CPU工作在24M,这很耗电啊,我的系统大部分时间在
采集数据不连接USB, 让我运行在24M太离谱了吧
而且即使CPU使用PLL做时钟, HCLK如果不配置为12M或者24M, USB
是无法连接的。
贴上程序。
void RCC_Config(void)
{
RCC_DeInit();
/* use external osc 4M */
RCC_HSEConfig(RCC_HSE_ON);
/* Wait for hse startup */
while(!RCC_WaitForHSEStartUp());
/* Select the HSE as the PLL source */
/* Config the pll clock 96M HZ */
RCC_PLLConfig(RCC_PLLSource_HSE, RCC_PLLMul_24, RCC_PLLDiv_4);
/* Select the HSE as the system clk */
RCC_SYSCLKConfig(RCC_SYSCLKSource_HSE); 这里配置为PLL,USB才能工作,使用HSE就不行
/* Set system clk as HCLK */
RCC_HCLKConfig(RCC_SYSCLK_Div1); 这里HCLK不配置为12,24M, USB无法工作
/* Set APB1_CLK = HCLK */
RCC_PCLK1Config(RCC_HCLK_Div1);
/* Set APB2_CLK = HCLK */
RCC_PCLK2Config(RCC_HCLK_Div1);
/* PLL enable */
RCC_PLLCmd(ENABLE);
/* wait for PLL stable */
while( RCC_GetSYSCLKSource() != 0x08 );
}
|