打印
[技术问答]

HK32F030C8T6怎么调到72Mhz?

[复制链接]
1727|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
abin88|  楼主 | 2020-10-19 09:52 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 abin88 于 2020-10-19 10:02 编辑

试着用cubemx把HK32F030C8T6主频调到64Mhz,好像到不了72Mhz啊?
只有红色部分可以改动,
谁知道怎么调到72?
这个使用的是内部时钟。要达到72Mhz,是不是要使用外部时钟?

void SystemClock_Config(void)  //64000
{
  LL_FLASH_SetLatency(LL_FLASH_LATENCY_1);
        
  if(LL_FLASH_GetLatency() != LL_FLASH_LATENCY_1)
  {
    Error_Handler();  
  }
  LL_RCC_HSI_Enable();
  
  while(LL_RCC_HSI_IsReady() != 1)
  {}
  LL_RCC_HSI_SetCalibTrimming(16);
  LL_RCC_LSI_Enable();
  while(LL_RCC_LSI_IsReady() != 1)
  {}
  LL_RCC_PLL_ConfigDomain_SYS(LL_RCC_PLLSOURCE_HSI_DIV_2, LL_RCC_PLL_MUL_16);
  LL_RCC_PLL_Enable();
         
  while(LL_RCC_PLL_IsReady() != 1)
  {}
  LL_RCC_SetAHBPrescaler(LL_RCC_SYSCLK_DIV_1);
  LL_RCC_SetAPB1Prescaler(LL_RCC_APB1_DIV_1);
  LL_RCC_SetSysClkSource(LL_RCC_SYS_CLKSOURCE_PLL);
         
  while(LL_RCC_GetSysClkSource() != LL_RCC_SYS_CLKSOURCE_STATUS_PLL)
  {}
  LL_Init1msTick(64000000);
  LL_SYSTICK_SetClkSource(LL_SYSTICK_CLKSOURCE_HCLK);
  LL_SetSystemCoreClock(64000000);
  LL_RCC_SetUSARTClockSource(LL_RCC_USART1_CLKSOURCE_PCLK1);
  NVIC_SetPriority(SysTick_IRQn, 0);
}

使用特权

评论回复

相关帖子

沙发
annko2005| | 2020-10-19 14:29 | 只看该作者
你参考我这个配置文件就是配置72MHZ的

使用特权

评论回复
板凳
annko2005| | 2020-10-19 14:30 | 只看该作者
annko2005 发表于 2020-10-19 14:29
你参考我这个配置文件就是配置72MHZ的

72MHZ

system_hk32f0xx.rar

3.1 KB

使用特权

评论回复
地板
annko2005| | 2020-10-19 14:50 | 只看该作者
这个是用ST修改的选择72 MHZ配置文件

system_stm32f0xx.rar

3.89 KB

使用特权

评论回复
5
fair2817| | 2020-10-21 07:29 | 只看该作者
本帖最后由 fair2817 于 2020-10-21 07:32 编辑

只看了103的手册,应该与030差不多。内部高速晶振最大只能调到64。

Screenshot_20201021_073132.jpg (71.31 KB )

Screenshot_20201021_073132.jpg

使用特权

评论回复
6
HSXP063| | 2020-10-21 08:24 | 只看该作者
fair2817 发表于 2020-10-21 07:29
只看了103的手册,应该与030差不多。内部高速晶振最大只能调到64。

可以到72M 的, 因为航顺的可以直接用HSI   8M 进行倍频

使用特权

评论回复
7
volley1983| | 2020-10-21 11:55 | 只看该作者
很好的东西

使用特权

评论回复
8
Kelan| | 2020-10-30 18:35 | 只看该作者
annko2005 发表于 2020-10-19 14:50
这个是用ST修改的选择72 MHZ配置文件

我打开并编译了这个文件,不行啊!

//#include "stm32f0xx.h"  /* 这个是ST的,我屏蔽掉 !*/
#include "hk32f0xx.h"

编译结果,有些声明没有!
Build started: Project: Test
*** Using Compiler 'V5.06 update 6 (build 750)', folder: 'C:\Keil_v5\ARM\ARMCC\Bin'
Build target 'Target 1'
compiling system_hk32f0xx.c...
APP\system_hk32f0xx.c(238): error:  #20: identifier "RCC_CFGR_PLLMULL" is undefined
        pllmull = RCC->CFGR & RCC_CFGR_PLLMULL;
APP\system_hk32f0xx.c(244): error:  #20: identifier "RCC_CFGR4" is undefined
          if(RCC_CFGR4 & RCC_CFGR4_PPS)
APP\system_hk32f0xx.c(244): error:  #20: identifier "RCC_CFGR4_PPS" is undefined
          if(RCC_CFGR4 & RCC_CFGR4_PPS)
APP\system_hk32f0xx.c(257): error:  #20: identifier "RCC_CFGR2_PREDIV1" is undefined
          prediv1factor = (RCC->CFGR2 & RCC_CFGR2_PREDIV1) + 1;
APP\system_hk32f0xx.c(301): error:  #20: identifier "RCC_CFGR4" is undefined
    RCC_CFGR4 |= RCC_CFGR4_PPS;
APP\system_hk32f0xx.c(301): error:  #20: identifier "RCC_CFGR4_PPS" is undefined
    RCC_CFGR4 |= RCC_CFGR4_PPS;
APP\system_hk32f0xx.c(304): error:  #20: identifier "RCC_CFGR_PLLMULL" is undefined
    RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLMULL));
APP\system_hk32f0xx.c(313): error:  #20: identifier "RCC_CFGR_PLLXTPRE_PREDIV1" is undefined
    RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE_PREDIV1 | RCC_CFGR_PLLMULL9);       //8*9=72MHZ   
APP\system_hk32f0xx.c(313): error:  #20: identifier "RCC_CFGR_PLLMULL9" is undefined
    RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE_PREDIV1 | RCC_CFGR_PLLMULL9);       //8*9=72MHZ   
APP\system_hk32f0xx.c: 0 warnings, 9 errors
".\Objects\Test.axf" - 9 Error(s), 0 Warning(s).


使用特权

评论回复
9
gym216| | 2020-11-1 14:12 | 只看该作者
#define RCC_CFGR_PLLMULL2        RCC_CFGR_PLLMUL2
#define RCC_CFGR_PLLMULL9        RCC_CFGR_PLLMUL9
void SetSysClockHSI(void)
{
        // HSI 内部时钟做为PLL时钟源并配置PLL 72M做为系统时钟
    /* Enable Prefetch Buffer and set Flash Latency */
    //FLASH->ACR = FLASH_ACR_PRFTBE | FLASH_ACR_LATENCY;
        FLASH->ACR = (1<<4)|2;        //使能预取,2个等待周期
    /* HCLK = SYSCLK */
    RCC->CFGR |= (uint32_t)RCC_CFGR_HPRE_DIV1;

    /* PCLK = HCLK */
    RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE_DIV1;

        //RCC->CFGR4.PPSS
        RCC->CFGR4 |=1<<8;        //0=HSE 1=HSI/8
       
    // PLL configuration = (HSI/2) * 12 = 48 MHz
    RCC_PLLConfig(RCC_PLLSource_PREDIV1, RCC_CFGR_PLLMUL9); // 8M/9 = 72M

    /* Enable PLL */
    RCC->CR |= RCC_CR_PLLON;

    /* Wait till PLL is ready */
    while ((RCC->CR & RCC_CR_PLLRDY) == 0)
    {
    }

    /* Select PLL as system clock source */
    RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); // PLL 做系统时钟

    /* Wait till PLL is used as system clock source */
    while ((RCC->CFGR & (uint32_t)RCC_CFGR_SWS) != (uint32_t)RCC_CFGR_SWS_PLL)
    {
    }
}
这个代码可以设置HSI 72M 不过据说这样5.6脚不能做未io口使用

使用特权

评论回复
10
Kelan| | 2020-11-3 10:12 | 只看该作者
annko2005 发表于 2020-10-19 14:29
你参考我这个配置文件就是配置72MHZ的

有些奇怪,既然是官方的,为何你们没有可用的、产生72MHz主频的源码参考? (用外部的8MHz 无源晶振做输入)。

使用特权

评论回复
11
明天真的好| | 2020-11-24 10:12 | 只看该作者
需要进行文件配置的,不然是达不到的。

使用特权

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

本版积分规则

19

主题

42

帖子

1

粉丝