高速外部时钟信号(HSE)可以从两个时钟源产生:
- HSE外部晶体或陶瓷谐振器

这个外部晶体或陶瓷谐振器的频率范围是:4MHz至48 MHz,可以为系统提供非常精确的主时钟。

时钟控制寄存器(RCC_CR)中的(HSERDY=1)位用来指示HSE已经稳定运行。HSE启动时,在硬件将(HSERDY)位置1前,HSE的时钟信号不会输出。
利用时钟控制寄存器(RCC_CR)中的(HSEON)位打开和关闭HSE晶体。
- HSE外部时钟

在此模式下,必须提供外部时钟源。其频率最高可达48 MHz。您可以通过设置时钟控制寄存器(RCC_CR)中的(HSEBYP=1,HSEON=1)位来选择此模式。占空比约为40-60%的外部时钟信号(方波、正弦波或三角波)驱动OSC_IN引脚,而OSC_OUT引脚可以用作GPIO。
以下是实现启动HSE的代码:
#define RCC ((uint32_t)0x40021000)
#define RCC_CR (*(volatile uint32_t *)(uint32_t)(RCC+0x00))
#define RCC_CR_HSERDY BIT(17)
#define RCC_CR_HSEON BIT(16)
// 使能HSE
RCC_CR |= RCC_CR_HSEON;
// 检测HSE状态,等待HSE稳定
unsigned int i;
for(i=0; i<1000; i++)
{
if (RCC_CR & RCC_CR_HSERDY) break;
delay();
}
2701



被折叠的 条评论
为什么被折叠?



