您的位置 首页 编程

智林STM32程序源代码的剖析和收拾02

一、STM32时钟配置程序分析1、RCCRCC是指ResetandClockControl复位和时钟控制。主要寄存包括控制、配置、中断、外设复位、外设时钟使

一、STM32时钟装备程序剖析

1、RCC

RCC是指Reset and Clock Control复位和时钟操控。首要存放包含操控、装备、中止、外设复位、外设时钟使能、复位状况存放器。

内核的作业时钟为SysClk,它的来历有三种:外部时钟HSE、内部时钟HSI和PLL输出时钟。当然PLL的时钟也是来自于外部或内部时钟。

2、我的源程序

void RCC_Config(void){//时钟装备,选用外部时钟和PLL

ErrorStatus HSEStartUpStatus;

RCC_DeInit();

HSEStartUpStatus = RCC_WaitForHSEStartUp();

//假如外部时钟起振成功

if(HSEStartUpStatus == SUCCESS)

{

FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);

FLASH_SetLatency(FLASH_Latency_2);

RCC_HCLKConfig(RCC_SYSCLK_Div1);// HCLK = SYSCLK AHB时钟等于体系时钟

RCC_PCLK2Config(RCC_HCLK_Div1);

RCC_PCLK1Config(RCC_HCLK_Div2);// PCLK1 = HCLK/2 APB1时钟等于1/2AHB时钟

RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_6);

RCC_PLLCmd(ENABLE);

//等候PLL准备好

while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);

RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);//挑选PLL作为体系时钟

while(RCC_GetSYSCLKSource() != 0x08);

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);//使能APB1上的TIM2

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB, ENABLE);

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);//使能三个IO口时钟

RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);//使能IO复用功用时钟

RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);//使能串口1时钟

}

二、NVIC的装备

1、NVIC

它是指嵌套向量中止操控器。中止的数目与向量表的巨细相关。加上保存的,每个向量占有4个字节,总共占有0x0000,00EC个字节。NVIC的装备与详细中止相关,都在详细器材里装备,所以程序里的代码很少。

2、源代码

void NVIC_Config(void){

#ifdefVECT_TAB_RAM

NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0);

#else

NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);

#endif

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);//STM32共有四位数字进行优先级挑选

}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/biancheng/256505.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部