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);
}
你参考我这个配置文件就是配置72MHZ的
annko2005 发表于 2020-10-19 14:29
你参考我这个配置文件就是配置72MHZ的
72MHZ
这个是用ST修改的选择72 MHZ配置文件
本帖最后由 fair2817 于 2020-10-21 07:32 编辑
只看了103的手册,应该与030差不多。内部高速晶振最大只能调到64。 fair2817 发表于 2020-10-21 07:29
只看了103的手册,应该与030差不多。内部高速晶振最大只能调到64。
可以到72M 的, 因为航顺的可以直接用HSI 8M 进行倍频 很好的东西 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).
#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口使用 annko2005 发表于 2020-10-19 14:29
你参考我这个配置文件就是配置72MHZ的
有些奇怪,既然是官方的,为何你们没有可用的、产生72MHz主频的源码参考? (用外部的8MHz 无源晶振做输入)。 需要进行文件配置的,不然是达不到的。
页:
[1]