基于LinkedInSTM32F4时钟系统初始化设置.doc
《基于LinkedInSTM32F4时钟系统初始化设置.doc》由会员分享,可在线阅读,更多相关《基于LinkedInSTM32F4时钟系统初始化设置.doc(5页珍藏版)》请在三一文库上搜索。
1、基于LinkedInSTM32F4时钟系统初始化设置LinkedInSTM32F4 时钟系统初始化是在system_stm32f4xx.c中的 SystemInit()函数中完成的。 对于系统时钟关键寄存器设置主要是在 SystemInit 函数中调用 SetSysClock()函数来设置的。我们可以先看看 SystemInit ()函数体:void SystemInit(void)#if (_FPU_PRESENT = 1) SCB-CPACR |= (3UL 10*2)|(3UL 11*2);#endifRCC-CR |= (uint32_t)0x00000001;RCC-CFGR = 0
2、x00000000;RCC-CR RCC-PLLCFGR = 0x24003010;RCC-CR RCC-CIR = 0x00000000;#if defined (DATA_IN_ExtSRAM) | defined (DATA_IN_ExtSDRAM)SystemInit_ExtMemCtl();#endifSetSysClock();#ifdef VECT_TAB_SRAMSCB-VTOR = SRAM_BASE | VECT_TAB_OFFSET;#elseSCB-VTOR = FLASH_BASE | VECT_TAB_OFFSET;#endifSystemInit函数开始先进行浮点
3、运算单元设置,然后是复位PLLCFGR,CFGR寄存器,同时通过设置 CR 寄存器的 HSI 时钟使能位来打开 HSI 时钟。默认情况下如果 CFGR 寄存器复位,那么是选择HSI作为系统时钟,这点大家可以查看RCC-CFGR 寄存器的位描述最低2位可以得知,当低两位配置为 00的时候(复位之后),会选择 HSI振荡器为系统时钟。也就是说,调用 SystemInit 函数之后,首先是选择 HSI 作为系统时钟。在设置完相关寄存器后,接下来SystemInit函数内部会调用 SetSysClock函数。这个函数比较长,我们就把函数一些关键代码行截取出来给大家讲解一下。这里我们省略一些宏定义标识符
4、值的判断而直接把针对STM32F407 比较重要的内容贴出来:static void SetSysClock(void)_IO uint32_t StartUpCounter = 0, HSEStatus = 0;RCC-CR |= (uint32_t)RCC_CR_HSEON);doHSEStatus = RCC-CR StartUpCounter+; while(HSEStatus = 0) if (RCC-CR HSEStatus = (uint32_t)0x01;elseHSEStatus = (uint32_t)0x00;if (HSEStatus = (uint32_t)0x01)
5、RCC-APB1ENR |= RCC_APB1ENR_PWREN;PWR-CR |= PWR_CR_VOS;RCC-CFGR |= RCC_CFGR_HPRE_DIV1;RCC-CFGR |= RCC_CFGR_PPRE2_DIV2;RCC-CFGR |= RCC_CFGR_PPRE1_DIV4;RCC-CFGR |= RCC_CFGR_PPRE2_DIV1;RCC-CFGR |= RCC_CFGR_PPRE1_DIV2;RCC-PLLCFGR = PLL_M | (PLL_N 6) | (PLL_P 1) -1) 16) |(RCC_PLLCFGR_PLLSRC_HSE) | (PLL_Q
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 LinkedInSTM32F4 时钟 系统 初始化 设置
链接地址:https://www.31doc.com/p-3410926.html