使用16M晶体,STM32F105的USB连接不通的问题

[复制链接]
4972|4
 楼主| seawwh 发表于 2011-4-11 19:31 | 显示全部楼层 |阅读模式
首次使用STM32F105构造一个虚拟串口,发现如下问题
1.测试程序使用的是 STM32_USB_Lib_V3.21 的 Virtual_COM_Port 代码。
2.使用25MHz的晶体,虚拟串口Ok.
  PA9 接3.3v可以工作。但是按照Demo的电路,PA9接Vusb(5v),则没有反应。
3.使用16MHz的晶体,程序做了下列改动,仍然不通。

    /* Configure PLLs *********************************************************/
    /* PLL2 configuration: PLL2CLK = (HSE / 5) * 8 = 40 MHz */
    //    RCC_PREDIV2Config(RCC_PREDIV2_Div5);   
    //    RCC_PLL2Config(RCC_PLL2Mul_8);
   
    /* PLL2 configuration: PLL2CLK = (16M / 4) * 10 = 40 MHz */
    RCC_PREDIV2Config(RCC_PREDIV2_Div4);            // 这两行是修改的部分
    RCC_PLL2Config(RCC_PLL2Mul_10);   //8~20

    RCC_PLL2Cmd(ENABLE);
    /* Wait till PLL2 is ready */
    while (RCC_GetFlagStatus(RCC_FLAG_PLL2RDY) == RESET)
    {}
    /* PLL configuration: PLLCLK = (PLL2 / 5) * 9 = 72 MHz */
    RCC_PREDIV1Config(RCC_PREDIV1_Source_PLL2, RCC_PREDIV1_Div5);
    RCC_PLLConfig(RCC_PLLSource_PREDIV1, RCC_PLLMul_9);
  不知道何处还需要修改?

thanks
yinyangdianzi 发表于 2011-4-12 11:01 | 显示全部楼层
明天会更好,
 楼主| seawwh 发表于 2011-4-13 09:40 | 显示全部楼层
经过对比调试发现 25MHz 和 16MHz 都可以用于STM32F105 的USB.
需要修改的语句只有一个位置:
RCC_PREDIV2Config(RCC_PREDIV2_Div4);    // PLL2CLK = (16M / 4) * 10 = 40 MHz  
RCC_PLL2Config(RCC_PLL2Mul_10);   
按照这个结果推算, 8MHz晶体,也是可以使用的。
stinby 发表于 2014-6-14 23:43 | 显示全部楼层
F105的USB,可以用25M晶振吗?
dingsujie 发表于 2014-6-16 13:52 | 显示全部楼层
8MHZ的晶振可以的,我之前用STM32F103将USB设置时钟为48MHZ
您需要登录后才可以回帖 登录 | 注册

本版积分规则

145

主题

368

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部