void RCC_LSEConfig(uint8_t RCC_LSE)
{
/* Reset LSEON bit */
*(__IO uint8_t *) BDCR_ADDRESS = RCC_LSE_OFF;
/* Reset LSEBYP bit */
*(__IO uint8_t *) BDCR_ADDRESS = RCC_LSE_OFF;
/* Configure LSE (RCC_LSE_OFF is already covered by the code section above) */
switch (RCC_LSE)
{
case RCC_LSE_Bypass:
/* Set LSEBYP and LSEON bits */
*(__IO uint8_t *) BDCR_ADDRESS = RCC_LSE_Bypass | RCC_LSE_ON;
break;
}
}
这个库函数有点看不懂,首先
/* Reset LSEON bit */
/* Reset LSEBYP bit */
两条下面的语句是一模一样的,为什么要写两遍呢?(橙 {MOD})
其次,参考手册里描述:
位 2 LSEBYP: 外部低速振荡器旁路 (External low-speed oscillator bypass)
由软件置 1 和清零,用于旁路调试模式下的振荡器。只有在禁止 LSE 时钟后才能写入该位。
只有在禁止LSE时钟后才能写入该位,函数中是开启LSE时钟同时写入该位的?(绿 {MOD})
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>