完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
为了降低功耗,我把内部系统时钟改为8M:
// /* PLL configuration = (HSI(~8MHz)/2) * 12 = ~48 MHz */ // RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLMULL)); // RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSI_Div2 | RCC_CFGR_PLLXTPRE_PREDIV1 | RCC_CFGR_PLLMULL12); /* PLL configuration = (HSI(~8MHz)/2) * 2 = ~8 MHz */ RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLMULL)); RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSI_Div2 | RCC_CFGR_PLLXTPRE_PREDIV1 | RCC_CFGR_PLLMULL2); 遇到的问题是:程序进入到while(1)时间很长,约2秒。调试发现这要系统滴答时钟有关系,请问这是在哪里出的问题?? int main(void) { unsigned int uiStatus; uint32_t SystemCoreClock_1 = 8000000; // uint8_t i; SysTick_Config(SystemCoreClock_1 / 1000); //1ms /* System Config */ Sys_CLK_Config(); /* MSR Init */ MSR_vInit(); 。。。。。。(此处省略) while(1) { 主运行程序; } } |
|
相关推荐
1个回答
|
|
|
给你提供两种方法参考:
1、利用ST官网给出的EXCEL表格式的时钟配置工具进行修改。优点: 可以实现任意时钟修改和内部PLL设置,无需关心system_stm32fXXX.C 2、直接修改system_stm32fXXX.C时钟配置。前提是弄清楚时钟架构。 你想要8MHZ系统时钟,就采用HSE,PLL=1,就达到目的了。 |
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1618 浏览 1 评论
1260 浏览 0 评论
1114 浏览 0 评论
STM32F405驱动DS1302时钟模块,输出时间错乱该怎么排查?
5494 浏览 2 评论
stm32f405rgt6驱动DS1302ZN出现时间错乱问题
4285 浏览 1 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-17 17:03 , Processed in 0.672341 second(s), Total 42, Slave 35 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
4467