低速时钟 (LSI)
时间: 2023-12-17 08:03:44 浏览: 40
低速时钟 (LSI) 是一种内部晶振,用于提供微控制器的低功耗时钟。它通常用于实时时钟 (RTC)、看门狗定时器和其他低功耗模块的时钟源。开启内部低速晶振 LSI 可以通过调用 RCC_LSICmd(ENABLE) 函数来实现。配置外部低速晶振 LSE 作为 RTC 时钟源可以通过调用 RCC_RTCCLKConfig(RCC_RTCCLKSource_LSE) 函数来实现。
相关问题
STM32 独立看门狗使用 40Khz 低速时钟驱动,通过设置 IWDG_PR 和 IWDG_RLR 寄存器可以修 改看门狗溢出时间。请写一个初始化函数 IWDG_Init 将看门狗溢出
时间设置为1秒,并使能看门狗。
```c
void IWDG_Init(void)
{
// 使能看门狗时钟
RCC->CSR |= RCC_CSR_IWDG1RSTF;
RCC->CSR &= ~RCC_CSR_IWDG1RSTF;
RCC->APB1ENR1 |= RCC_APB1ENR1_IWDG1EN;
// 配置看门狗预分频器和重载寄存器,使溢出时间为1秒
IWDG->KR = 0x5555; // 开启对寄存器的写操作
IWDG->PR = 6; // 预分频器值,40KHz / 64 = 625Hz
IWDG->RLR = 625; // 重载寄存器值,1秒 / 625Hz = 625
// 使能看门狗
IWDG->KR = 0xCCCC; // 启动看门狗
}
```
注意,在 STM32 中,看门狗定时器 IWDG 的时钟源只能是内部低速时钟 LSI,其频率为 40KHz,相应的 IWDG 定时器最大溢出时间为 32768 / 40KHz = 819.2ms。因此,如果需要设置更长的看门狗超时时间,可以考虑使用外部看门狗(WWDG)或者使用硬件定时器。
stm32有那些时钟
STM32微控制器具有多个时钟源和时钟树,用于提供不同模块和外设的时钟信号。一般来说,常见的时钟包括以下几种:
1. HSI(High-Speed Internal)时钟:内部高速时钟,通常为16 MHz。
2. HSE(High-Speed External)时钟:外部高速时钟,可以通过外部晶体振荡器或外部时钟源提供,频率范围一般为4 MHz至26 MHz。
3. LSI(Low-Speed Internal)时钟:内部低速时钟,通常为32 kHz。主要用于低功耗模式下的RTC(实时时钟)。
4. LSE(Low-Speed External)时钟:外部低速时钟,可以通过外部晶体振荡器或外部时钟源提供,频率一般为32.768 kHz。也用于RTC。
5. PLL(Phase-Locked Loop)时钟:锁相环时钟,通过对HSI或HSE进行倍频和分频来产生高频率的时钟信号,常用于系统主时钟。
6. SYSCLK:系统主时钟,可以选择HSI、HSE、PLL或PLL作为时钟源,并通过分频器进行分频。
7. HCLK:AHB总线时钟,由SYSCLK分频得到,用于驱动CPU、DMA和其他核心模块。
8. PCLK1和PCLK2:APB1和APB2总线时钟,由HCLK分频得到,用于驱动外设。
9. ADC时钟:用于模数转换器(ADC)的时钟信号。
10. USART时钟:用于串行通信接口(USART)的时钟信号。
这些时钟源和时钟信号可以通过相应的寄存器配置和时钟树设置来控制和调整。具体的时钟配置和使用方式可以参考STM32的技术手册和参考资料。