完善资料让更多小伙伴认识你,还能领取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,就达到目的了。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
自定义系统时钟频率后,用库函数和微带两种方式点亮LED灯,为什么灯的闪烁频率不一致?
779 浏览 2 评论
955 浏览 2 评论
1902 浏览 0 评论
【嵌入式SD NAND】基于FATFS/Littlefs文件系统的日志框架实现
695 浏览 0 评论
求助!STM32F4单片机编程与设计sEMG信号采集电路问题
877 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-3-29 14:50 , Processed in 0.547128 second(s), Total 70, Slave 54 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 深圳华秋电子有限公司
电子发烧友 (电路图) 粤公网安备 44030402000349 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号