abin88 发表于 2020-10-19 09:52

HK32F030C8T6怎么调到72Mhz?

本帖最后由 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

annko2005 发表于 2020-10-19 14:50

这个是用ST修改的选择72 MHZ配置文件

fair2817 发表于 2020-10-21 07:29

本帖最后由 fair2817 于 2020-10-21 07:32 编辑

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

HSXP063 发表于 2020-10-21 08:24

fair2817 发表于 2020-10-21 07:29
只看了103的手册,应该与030差不多。内部高速晶振最大只能调到64。

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

volley1983 发表于 2020-10-21 11:55

很好的东西

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).


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口使用

Kelan 发表于 2020-11-3 10:12

annko2005 发表于 2020-10-19 14:29
你参考我这个配置文件就是配置72MHZ的

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

明天真的好 发表于 2020-11-24 10:12

需要进行文件配置的,不然是达不到的。
页: [1]
查看完整版本: HK32F030C8T6怎么调到72Mhz?