RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE; RCC_OscInitStruct.HSEState = RCC_HSE_ON; RCC_OscInitStruct.HSIState = RCC_HSI_OFF; RCC_OscInitStruct.CSIState = RCC_CSI_OFF; RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; RCC...
uint32_t HAL_RCC_GetHCLKFreq(void); uint32_t HAL_RCC_GetPCLK1Freq(void); uint32_t HAL_RCC_GetPCLK2Freq(void); void HAL_RCC_GetOscConfig(RCC_OscInitTypeDef *RCC_OscInitStruct); void HAL_RCC_GetClockConfig(RCC_ClkInitTypeDef *RCC_ClkInitStruct, uint32_t *pFLatency); void HAL_RCC...
void HAL_Delay_us(uint32_t us) { HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000000); HAL_Delay(us-1); HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000); } 实现原理: 假设我们的时钟频率设为了180MHz HAL_RCC_GetHCLKFreq()用于获取当前系统中的计数值 HAL_SYSTICK_Config()用于设置多少...
int HAL_RCC_HCPU_GetClockSrc(int clk_module) Get clock source of HCPU HW module. 参数: clk_module –module for clock, RCC_CLK_MOD_XXX 返回值: clock –source, void HAL_RCC_HCPU_SetDiv(int div, int pdiv1, int pdiv2) Set divider for clock of HCPU. 参数: div –main div...
intmain(void){uint32_ttime,TIM_PscCLK;/* 初始化系统时钟为72MHz */SystemClock_Config();/* 初始化LED */LED_GPIO_Config();DEBUG_USART_Config();printf("\r\n按下KEY1,测试KEY1按下的时间\r\n");GENERAL_TIM_Mode_Config();// TIM 计数器的驱动时钟TIM_PscCLK=HAL_RCC_GetHCLKFreq()/GENE...
HAL_RCC_GetHCLKFreq()用于获取当前系统中的计数值 HAL_SYSTICK_Config()用于设置多少时间中断一次 180M / 1000 = 180000 HAL_SYSTICK_Config(180000)代表了延时了180000 / f主频 = 1 /1000s 即 1ms 中断一次 同理HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000000) 即 1us 中断一次 ...
该寄存器配置也比较简单,以HSE为例,如要开启HSE,则先将第8位HSEON置1来开启HSE时钟,再根据是否使用旁路模式来配置第10位HSEBYP,如果使用安全模式,则配置HSECSSON。 (2)RCC振荡器时钟使能清除寄存器(RCC_OCENCLRR) 图18.2.1.2RCC_OCENCLRR寄存器 ...
HAL库不像之前的标准库,在系统启动函数SystemInit里面做了RCC初始化,HAL库是没有做的,所以进入到main函数后,系统还在用内部高速时钟HSI,对于H7来说,HSI主频是64MHz。 函数HAL_Init里面调用的HAL_MspInit一般在文件stm32h7xx_hal_msp.c里面做具体实现,主要用于底层初始化。当前此函数也在文件stm32h7xx_hal.c里面...
HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq() /1000);//1ms 到此,关于systick的工作流程就算是介绍差不多了,还有最后一步,Systick中断回调函数需要添加到中断回调句柄中 可以看到systick中断回调函数依然是_weak修饰符,意思就是我们自己一个一样名字的函数,不会报错 ...
uint32_t delay = (HAL_RCC_GetHCLKFreq() / 4000000 * us);while (delay--){ ;} } void ...