完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
以下是一个简单的配置STM32F107内部时钟的例子:
```c #include "stm32f10x.h" void RCC_Configuration(void) { /* Enable HSI */ RCC_HSICmd(ENABLE); /* Wait till HSI is ready */ while(RCC_GetFlagStatus(RCC_FLAG_HSIRDY) == RESET); /* HCLK = SYSCLK = HSI */ RCC_HCLKConfig(RCC_SYSCLK_Div1); /* PCLK2 = HCLK */ RCC_PCLK2Config(RCC_HCLK_Div1); /* PCLK1 = HCLK/2 */ RCC_PCLK1Config(RCC_HCLK_Div2); /* Select HSI as system clock source */ RCC_SYSCLKConfig(RCC_SYSCLKSource_HSI); /* Wait till HSI is used as system clock source */ while(RCC_GetSYSCLKSource() != 0x00); } int main(void) { RCC_Configuration(); /* Your code here */ while (1); } ``` 该例程中,首先启用了HSI(内部高速时钟)并等待它准备就绪。然后将HCLK(AHB总线时钟)、PCLK2(APB2总线时钟)和PCLK1(APB1总线时钟)配置为HSI时钟。最后,将系统时钟配置为HSI并等待配置完成。 请根据需求修改主函数中的实际代码。 |
|
|
3 条评论
|
|
|
输了几次评论都被吞了,不知道为什么,我就直接在答案里输了。你的代码是直接用HSI作系统时钟,我想用锁相环倍频后作系统时钟,但是遇到一个问题:
static void Drv_Bsp_RCC_Configuration(void) { RCC_DeInit(); RCC_HSICmd(ENABLE); while(RCC_GetFlagStatus(RCC_FLAG_HSIRDY) == RESET); FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable); FLASH_SetLatency(FLASH_Latency_2); RCC_HCLKConfig(RCC_SYSCLK_Div1); RCC_PCLK1Config(RCC_HCLK_Div2); RCC_PCLK2Config(RCC_HCLK_Div1); RCC_PLLConfig(RCC_PLLSource_HSI_Div2, RCC_PLLMul_9); RCC_PLLCmd(ENABLE); while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET); RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);// while(RCC_GetSYSCLKSource() != 0x08);// RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE); /* Enable GPIOA GPIOB SPI1 and USART1 clocks */ /* Enable GPIOA, GPIOB, GPIOC, GPIOD, GPIOE, GPIOF, GPIOG and AFIO clocks */ RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOD | RCC_APB2Periph_GPIOE | RCC_APB2Periph_AFIO, ENABLE); GPIO_PinRemapConfig(GPIO_Remap_SWJ_NoJTRST, ENABLE); //改变制定管脚的映射,除JTRST外,SWJ完全使能(JTAG+SW+DP) GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable , ENABLE); //JTAG_DP失能,SW_DP使能 } 在while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);这句代码一直返回的是RESET,还没找到问题在哪 |
|
|
|
|
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
STM32F405驱动DS1302时钟模块,输出时间错乱该怎么排查?
2961 浏览 2 评论
stm32f405rgt6驱动DS1302ZN出现时间错乱问题
2463 浏览 1 评论
stm32用fsmc读取ad7606采集数据,数据不变,只有开发版复位才更新数据
2331 浏览 0 评论
2455 浏览 1 评论
1674 浏览 1 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-3 02:48 , Processed in 0.649007 second(s), Total 54, Slave 46 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
14825