奋斗的少年yyds 2023-04-08 16:16 采纳率: 0%
浏览 50
已结题

关于#stm32#的问题,如何解决?急


```c

  Configures the System clock frequency, HCLK, PCLK2 and PCLK1 prescalers.
Sets System clock frequency to 72MHz and configure HCLK, PCLK2 
  *         and PCLK1 prescalers. 

static void SetSysClockTo72(void)
上面这个函数的哪里得到了stm32f103c8t6的外部时钟的PLL倍频(72MHz)

  • 写回答

4条回答 默认 最新

  • 极客智能体-在线 2023-04-08 16:30
    关注

    以下答案由GPT-3.5大模型与博主波罗歌共同编写:
    在STM32F103C8T6芯片中,系统时钟由外部晶体振荡器提供,并通过PLL倍频器进行倍频后得到。那么如何在代码中设置PLL倍频并将系统时钟频率设置为72MHz呢?

    可以通过以下步骤实现:

    1. 在代码中包含RCC库头文件。
    #include "stm32f10x_rcc.h"已黑化的小白 ```
    
    2. 设置外部晶体振荡器为系统时钟源,并启用PLL倍频器。
    
    ```c
    // Enable HSE (external crystal oscillator)
    RCC_HSEConfig(RCC_HSE_ON);
    
    // Wait till HSE is ready
    while (RCC_GetFlagStatus(RCC_FLAG_HSERDY) == RESET);
    
    // Configure PLL settings
    RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);
    
    // Enable PLL
    RCC_PLLCmd(ENABLE);
    
    // Wait till PLL is ready
    while (RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);
    
    // Set system clock dividers
    RCC_HCLKConfig(RCC_SYSCLK_Div1); // HCLK = SYSCLK / 1
    RCC_PCLK2Config(RCC_HCLK_Div1); // PCLK2 = HCLK / 1
    RCC_PCLK1Config(RCC_HCLK_Div2); // PCLK1 = HCLK / 2
    
    // Select PLL as system clock source
    RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
    

    在上面的代码中,我们先启用外部晶体振荡器(HSE)并等待其就绪。然后配置PLL的设置,此处我们将外部时钟频率(HSE)除以1,再将其乘以9,以获得72MHz的系统时钟频率。接着启用PLL并等待其就绪,最后设置HCLK、PCLK2和PCLK1的分频器,以及将PLL选为系统时钟源。

    希望能帮到你。
    如果我的回答解决了您的问题,请采纳!

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 4月10日
  • 创建了问题 4月8日