打印

关于stm32固件库中rcc的一个疑问

[复制链接]
1993|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yffinger|  楼主 | 2011-3-16 21:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在固件库的stm32f10x_rcc.c中,函数void RCC_HSEConfig(uint32_t RCC_HSE)里面有这样一段:
    case RCC_HSE_Bypass:
      /* Set HSEBYP and HSEON bits */
      RCC->CR |= CR_HSEBYP_Set | CR_HSEON_Set;
      break;
请问为什么这里还需要 CR_HSEON_Set 呢?振荡器不是被旁路了吗?
沙发
airwill| | 2011-3-16 22:03 | 只看该作者
我也看了一下, 发现似乎并不必要. 猜想这么设定是因为考虑留着 HSE 以便于下次又恢复 HSE 的时候, 能够快速的切换过去.

使用特权

评论回复
板凳
mcuisp| | 2011-3-16 22:05 | 只看该作者
嗯,HSE启动通常很慢的。

使用特权

评论回复
地板
yffinger|  楼主 | 2011-3-16 22:11 | 只看该作者
但是在这个函数的开头有:
  RCC->CR &= CR_HSEON_Reset;
  /* Reset HSEBYP bit */
也就是每次设置之前都是先把HSE关掉的
所以貌似留着HSE也不能起到下一次快速切换的作用

使用特权

评论回复
5
mcuisp| | 2011-3-16 22:52 | 只看该作者
噢,那真就是纯bug了。

使用特权

评论回复
6
香水城| | 2011-3-17 18:16 | 只看该作者
:lol无伤大雅,

使用特权

评论回复
7
hsbjb| | 2011-3-18 11:16 | 只看该作者
应该影响不大

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

5

帖子

1

粉丝