[AT32F403/403A] AT32F421K8U7怎么配置HSI为48MHz???

[复制链接]
1838|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

粉丝
快速回复 在线客服 返回列表 返回顶部