//系统时钟初始化函数//pll:选择的倍频数,从2开始,最大值为16voidStm32_Clock_Init(u8 PLL){unsignedchartemp=0; MYRCC_DeInit();//复位并配置向量表RCC->CR|=0x00010000;//外部高速时钟使能HSEONwhile(!(RCC->CR>>17));//等待外部时钟就绪RCC->CFGR=0X00000400;//APB1=DIV2;APB2=DIV1;AHB=DIV1...
可以理解main函数的Stm32_Clock_Init,可以找到:Stm32_Clock_Init(432,25,2,9); //设置时钟,216Mhz 然后找到Stm32_Clock_Init的定义,void Stm32_Clock_Init(u32 plln,u32 pllm,u32 pllp,u32 pllq) 由于外部晶振是25M,现在Stm32_Clock_Init第二个参数pllm是25,因此外部晶振是25M经过/M后,变成1。然...
* is reset to the default reset state (done in SystemInit() function). * @param None * @retval None */ static void SetSysClock(void) { /***/ /* PLL (clocked by HSE) used as System clock source */ /***/ __IO uint32_
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); //时钟使能 2)初始化定时器参数,设置自动重装值,分频系数,计数方式 在库函数中,定时器的初始化参数是通过初始化函数 TIM_TimeBaseInit 实现的: void TIM_TimeBaseInit(TIM_TypeDef*TIMx, TIM_TimeBaseInitTypeDef*TIM_TimeBaseInitStruct); 第一个参数...
void GenitopZkInit(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); GPIO_InitStructure.GPIO_Pin=GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_7; GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; ...
3.4、SystemInit( )函数 3.5、SetSysClock( )函数 在SetSysClock函数中,配置了系统时钟,PLL倍频以及分频系数: SystemIint 和 SetSysClock都是官方固件文件中提供的,直接调用即可完成时钟的选择和设置。 3.6、自行配置时钟 除了可以调用官方提供的时钟设置函数接口外,如果想要自己自行设置相关的时钟操作,也是可以的。
RCC(Reset and Clock Control)主要负责系统时钟的控制和管理,它提供了一系列的寄存器,用于配置和控制处理器的时钟源、时钟频率和时钟分频器,以及外设的时钟使能和配置。在 《STM32F1xx 中文参考手册》中有RCC寄存器描述,本文不再缀述。五、SystemInit()初始化时钟分析 系统复位后,HSI被选为系统时钟。在STM32的...
HAL_Init(); /* 初始化HAL库 */ sys_stm32_clock_init(336, 8, 2, 7); /* 设置时钟,168Mhz */ delay_init(168); /* 延时初始化 */ usart_init(115200); /* 串口初始化为115200 */ led_init(); /* 初始化LED */ beep_init(); /* 初始化蜂鸣器 */ ...
stap_stm32f10x_cl.s(启动文件) → SystemInit() → SetSysClock () → SetSysClockTo72() 初始化时钟用到的RCC寄存器复位值: RCC_CR = 0x0000 xx83; RCC_CFGR = 0x0000 0000;RCC_CIR = 0x0000 0000; RCC_CFGR2 = 0x0000 0000; SystemInit() ...
/* Fast mode speed calculate: Tlow/Thigh = 16/9 */ result = (uint16_t)(pclk1 / (I2C_InitStruct->I2C_ClockSpeed * 25)); /* Set DUTY bit */ result |= I2C_DutyCycle_16_9; } /* Test if CCR value is under 0x1*/