21ic问答首页 - 不用外部晶振,怎么使APM32F051C8内部HSI 8M时钟倍频到48M
不用外部晶振,怎么使APM32F051C8内部HSI 8M时钟倍频到48M
rainchen03992022-08-06
之前玩了GD32的单片机,它内部时钟在system文件中有个语句直接选#define __SYSTEM_CLOCK_72M_PLL_IRC8M_DIV2 (uint32_t)(72000000),内部8M时钟倍频到72M,
APM32的system文件中没有可选项,要不只能用内部8M,要不重新设置寄存器;按照STM32使用内部HSI时钟代码改了半天,没改对啊,有用过得朋友发个代码看看额;
APM32的system文件中没有可选项,要不只能用内部8M,要不重新设置寄存器;按照STM32使用内部HSI时钟代码改了半天,没改对啊,有用过得朋友发个代码看看额;
赞0
评论
2023-01-03
赞0
肯定是外部晶振比较准的,HSI一般有±1%的误差,数据手册里有体现
评论
2022-11-28
赞0
评论
2022-10-04
赞0
#elif defined SYSTEM_CLOCK_48M_PLL_IRC8M_DIV2
static void SystemClock48M_IRC8M(void)
{
uint32_t i;
RCM->CTRL1_B.HSIEN= BIT_SET; // 使能高速内部时钟 //
for (i = 0; i < HSI_STARTUP_TIMEOUT; i++) //等待内部时钟稳定//
{
if (RCM->CTRL1_B.HSIRDY**)
{
break;
}
}
if (RCM->CTRL1_B.HSIRDY**)
{
FMC->CTRL1_B.PBEN = BIT_SET; // 使能预取缓存区 //
FMC->CTRL1_B.WS = 1; // Flash 1 等待一个时钟周期 //
RCM->CFG1_B.AHBPSC= 0X00; // HCLK = SYSCLK AHB时钟不分频 //
RCM->CFG1_B.APB1PSC = 0X00; // PCLK = HCLK APB1时钟不分频//
RCM->CFG1_B.PLLSRCSEL = 0; // HSICLK 2分频后为PLL时钟源//
RCM->CFG1_B.PLLMULCFG = 10; // PLL倍频系数为12 //
RCM->CTRL1_B.PLLEN = 1; // 使能 PLL //
while (RCM->CTRL1_B.PLLRDY** == BIT_RESET);// 等待PLL稳定 //
RCM->CFG1_B.SCLKSEL = 2; // 选择PLL为系统时钟源 //
while (RCM->CFG1_B.SCLKSWSTS!= 0x02);// 等待PLL被系统确认为时钟源 //
}
}
评论
2022-08-20
赞0
评论
2022-08-16
赞0
评论
2022-08-12
赞0
评论
2022-08-11
赞0
评论
2022-08-08
赞0
评论
2022-08-08
您需要登录后才可以回复 登录 | 注册