完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
static void SetSysClockTo56(void) { __IO uint32_t StartUpCounter = 0, HSEStatus = 0; /*!< SYSCLK, HCLK, PCLK2 and PCLK1 configuration ---------------------------*/ /*!< Enable HSE */ RCC->CR |= ((uint32_t)RCC_CR_HSEON); /*!< Wait till HSE is ready and if Time out is reached exit */ do { HSEStatus = RCC->CR & RCC_CR_HSERDY; StartUpCounter++; } while((HSEStatus == 0) && (StartUpCounter != HSEStartUp_TimeOut)); if ((RCC->CR & RCC_CR_HSERDY) != RESET) { HSEStatus = (uint32_t)0x01; } else { HSEStatus = (uint32_t)0x00; } if (HSEStatus == (uint32_t)0x01) { /*!< Enable Prefetch Buffer */ FLASH->ACR |= FLASH_ACR_PRFTBE; /*!< Flash 1 wait state */ 请看这里,系统时钟要设置为56M,应该是两个等待状态才对啊?????请高手指点 FLASH->ACR &= (uint32_t)((uint32_t)~FLASH_ACR_LATENCY); FLASH->ACR |= (uint32_t)FLASH_ACR_LATENCY_1; /*!< HCLK = SYSCLK */ RCC->CFGR |= (uint32_t)RCC_CFGR_HPRE_DIV1; /*!< PCLK2 = HCLK */ RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE2_DIV1; /*!< PCLK1 = HCLK */ RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE1_DIV2; /*!< PLLCLK = 8MHz * 7 = 56 MHz */ RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLMULL)); RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC | RCC_CFGR_PLLMULL7); /*!< 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->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_SW)); RCC->CFGR |= (uint32_t)RCC_CFGR_SW_PLL; /*!< Wait till PLL is used as system clock source */ while ((RCC->CFGR & (uint32_t)RCC_CFGR_SWS) != (uint32_t)0x08) { } } else { /*!< If HSE fails to start-up, the application will have wrong clock configuration. User can add here some code to deal with this error */ /*!< Go to infinite loop */ while (1) { } } } |
|
相关推荐
2个回答
|
|
/*!< Flash 1 wait state */ 请看这里,系统时钟要设置为56M,应该是两个等待状态才对啊?????请高手指点
------------------------------- 你的质疑是有道理的 不能全相信代码 官方提供的例程也是有bug的 |
|
|
|
>48MHz要设置成两个时钟延迟,按照技术手册给出的资料是这样的;
56超出48有17%,在一般设计容限上是在允许范围内的,所以此处设置一个时钟延时,程序是能够正常运行;只能说这个程序作为例子,不太严谨! 我们的电脑能够超频使用,就是根据这个原理来的 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
飞凌嵌入式ElfBoard ELF 1板卡-CAN编程示例之开发板测试
1002 浏览 0 评论
该问题是用APP给芯海科技的CST92F25芯片发指令是出现的
3316 浏览 1 评论
876 浏览 0 评论
1742 浏览 1 评论
3127 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-28 17:35 , Processed in 0.553930 second(s), Total 76, Slave 58 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号