打印
[AT32F403/403A]

AT32F421K8U7怎么配置HSI为48MHz???

[复制链接]
1176|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
794755596|  楼主 | 2021-1-29 17:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
hz, rc, PLL, se
我直接在固件库里做了修改,不知道为何不行

static void SetSysClockTo48M(void)
{
         __IO uint32_t StartUpCounter = 0, HSEStatus = 0;

       

        // 把RCC外设初始化成复位状态,这句是必须的
  RCC_Reset();

  //使能HSI
        RCC_HSICmd(ENABLE);
       

       
        // 只有 HSI就绪之后则继续往下执行
  if (RCC_GetFlagStatus(RCC_FLAG_HSISTBL ))
  {
//----------------------------------------------------------------------//
     FLASH->ACR = FLASH_ACR_DEFAULT(FLASH_ACR_LATENCY_1);
//----------------------------------------------------------------------//

    // AHB预分频因子设置为1分频,HCLK = SYSCLK
    RCC_AHBCLKConfig(RCC_SYSCLK_Div1);

    // APB2预分频因子设置为1分频,PCLK2 = HCLK
    RCC_APB2CLKConfig(RCC_AHBCLK_Div1);

    // APB1预分频因子设置为1分频,PCLK1 = HCLK
    RCC_APB1CLKConfig(RCC_AHBCLK_Div1);
               

    // 设置PLL时钟来源为HSE,设置PLL倍频因子
                // PLLCLK = 4MHz * pllmul
                RCC_PLLConfig(RCC_PLLRefClk_HSI_Div2, 12,RCC_Range_LessEqual_72Mhz);
//------------------------------------------------------------------//

    // 开启PLL
    RCC_PLLCmd(ENABLE);

    // 等待 PLL稳定
    while (RCC_GetFlagStatus(RCC_FLAG_PLLSTBL) == RESET)
    {
    }

    // 当PLL稳定之后,把PLL时钟切换为系统时钟SYSCLK
    RCC_SYSCLKConfig(RCC_SYSCLKSelction_HSI);

    // 读取时钟切换状态位,确保PLLCLK被选为系统时钟
    while (RCC_GetSYSCLKSelction() != 0x08)
    {
    }
  }
  else
  {
    while (1)
    {
               
    }
  }

使用特权

评论回复
沙发
794755596|  楼主 | 2021-1-29 17:56 | 只看该作者

AT32F421K8U7怎么配置HSI为48MHz???

// 设置PLL时钟来源为HSE,设置PLL倍频因子这里写错了,是HSI

使用特权

评论回复
板凳
mzd1207| | 2021-1-29 22:36 | 只看该作者
系统给的例程中配置的是外部高速时钟,外部时钟频率是8M的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

2

帖子

0

粉丝