历史上的今天
今天是:2024年10月16日(星期三)
2018年10月16日 | STM32系统初始化模板函数
2018-10-16 来源:eefocus
第一次写,也不知道写些啥,就copy一个STM32 系统时钟初始化模板函数吧,以来分享给新手参考,而来自己当做备份一下。
有大神看到觉不妥之处请指出,勿喷!谢谢!
void SYS_Init(void)
{
uint8_t HSEStartUpStatus;
RCC_DeInit(); //将RCC设置为默认的重置状态
RCC_HSEConfig(RCC_HSE_ON); //配置外部高速晶振 (HSE - ON)
HSEStartUpStatus = RCC_WaitForHSEStartUp(); //等待外部时钟就绪
if(HSEStartUpStatus == SUCCESS) //SUCCESS:外部时钟(HSE)稳定就绪
{
RCC_HCLKConfig(RCC_SYSCLK_Div1); // 设置 (AHB)时钟:RCC_SYSCLK_Div1 -不分频(AHB时钟 = 系统时钟)
RCC_PCLK2Config(RCC_HCLK_Div1); //时钟APB时钟(PCLK2) :RCC_HCLK_Div1: APB2 clock = HCLK
RCC_PCLK1Config(RCC_HCLK_Div2); //时钟APB时钟(PCLK1) :RCC_HCLK_Div2: APB1 clock = HCLK/2
FLASH_SetLatency(FLASH_Latency_2); //设置FLASH 存储器延时时钟周期
FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable); //预区缓存器使能
RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9); //设置PLL时钟源为HSE,倍频系数为 9
RCC_PLLCmd(ENABLE); //使能PLL
while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET) ; //等待PLL就绪
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); //设置PLL时钟为系统时钟
while(RCC_GetSYSCLKSource() != 0x08) ; //等待PLL时钟成为系统时钟
}
}
上一篇:STM32寄存器模板的创建问题
下一篇:STM32之按键操作
史海拾趣
|
随着应用的不断扩展,今天和未来的单片机普及和车辆网络正在继续。单片机是车辆内各种电子控制模块的“大脑”,而网络则是“系统互连”。本地互连网络(LIN)是业界第一个提出车内Class A开放多路复用协议标准。它定义了一个支持车辆内 ...… 查看全部问答> |
|
我现在用CC1100接收模块开发一个项目,用的单片机是MSP430F2274,但相应的电源板只能提供3mA的电流,我现在想用电磁波解决这个问题,想问哪个高手能给我些代码,非常感谢!… 查看全部问答> |
|
手里有一块28335的板子和一个前辈留下的仿真器,各个地方都找遍了就是找不到驱动程序,求各位大侠出手相助。 我的系统是WIN7 32位,已装好CCS3.3。用过的大侠能把驱动发我邮箱么..mashaokang1111@163.com。谢谢啊! [ 本帖最后由 mashaokang 于 20 ...… 查看全部问答> |
|
ufun群开始使用了 感谢朋友们的支持!现在项目资金总额达到了11803元。 令人格外高兴的是,有PCB制板公司的朋友愿意提供免费的PCB加工;焊接也有可能得到免费的支持;器件优惠还在联系…… 大家的支持使最终 ...… 查看全部问答> |




