奋斗的少年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日

悬赏问题

  • ¥15 在不同的执行界面调用同一个页面
  • ¥20 基于51单片机的数字频率计
  • ¥50 M3T长焦相机如何标定以及正射影像拼接问题
  • ¥15 keepalived的虚拟VIP地址 ping -s 发包测试,只能通过1472字节以下的数据包(相关搜索:静态路由)
  • ¥20 关于#stm32#的问题:STM32串口发送问题,偶校验(even),发送5A 41 FB 20.烧录程序后发现串口助手读到的是5A 41 7B A0
  • ¥15 C++map释放不掉
  • ¥15 Mabatis查询数据
  • ¥15 想知道lingo目标函数中求和公式上标是变量情况如何求解
  • ¥15 关于E22-400T22S的LORA模块的通信问题
  • ¥15 求用二阶有源低通滤波将3khz方波转为正弦波的电路