1. 确定STM32H730读取时钟的相关HAL库函数 在STM32H7系列微控制器中,用于读取时钟频率的HAL库函数主要是HAL_RCC_GetHCLKFreq()、HAL_RCC_GetPCLK1Freq()、HAL_RCC_GetPCLK2Freq()等。这些函数分别用于获取AHB时钟(HCLK)、APB1时钟(PCLK1)和APB2时钟(PCLK2)的频率。 2. 查找HAL_RCC_GetHCLKFreq()函数的...
同理HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000000) 即 1us 中断一次 为何输入延时时间在HAL_Delay(us-1);处要减1呢?由于进出函数,配置寄存器都需要时间,经过测试大约为1us,故而要减去1 HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000);重新将中断设为 1ms 中断一次,退出函数 优点:可省下一个硬件...
HAL_ADC_Start(&hadc1);//开始ADC采集 HAL_ADC_PollForConversion(&hadc1,500);//等待采集结束 if(HAL_IS_BIT_SET(HAL_ADC_GetState(&hadc1), HAL_ADC_STATE_REG_EOC))//读取ADC完成标志位 { return HAL_ADC_GetValue(&hadc1);//读出ADC数值 } return 0; } HAL_ADCEx_Calibration_Start(&ha...
HAL_Delay(1000);} } void SystemClock_Config(void) { RCC_OscInitTypeDef RCC_OscInitStruct;RCC_...
调用HAL_RCC_GetHCLKFreq()函数。 调用HAL_RCC_ClockConfig()函数。 总结 在system_stm32xx.c文件中,定义了HSI_VALUE和HSE_VALUE两个宏,分别表示该单片机的内部高速时钟频率和外部高速时钟频率,两个值一定要与实际的相对应。 当单片机复位之后,HSI(内部高速时钟,在f1系列为8MHz)会作为系统的时钟源。直到执行了...
HAL_SYSTICK_Config()用于设置多少时间中断一次 180M / 1000 = 180000 HAL_SYSTICK_Config(180000)代表了延时了180000 / f主频 = 1 /1000s 即 1ms 中断一次 同理HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000000) 即 1us 中断一次 为何输入延时时间在HAL_Delay(us-1);处要减1呢?由于进出函数,配置寄...
HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000); HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK); HAL_NVIC_SetPriority(SysTick_IRQn, 0, 0); } static void MX_USART2_UART_Init(void) { // 配置USART2为串口模式 huart2.Instance = USART2; ...
voiddelay_us(uint32_t us){uint32_t delay=(HAL_RCC_GetHCLKFreq()/4000000*us);while(delay--){;}} 方式三:普通定时器 优点:STM32全系列通用缺点:占用一个定时器 该方法的思路是将定时器设置为1MHZ的计数频率,定时器计一个数就是1us,实现如下: ...
1//HAL_RCC_GetHCLKFreq()/1000 1ms中断一次,即HAL_Delay函数延时基准为1ms2//HAL_RCC_GetHCLKFreq()/100000 10us中断一次,即HAL_Delay函数延时基准为10us3//HAL_RCC_GetHCLKFreq()/1000000 1us中断一次,即HAL_Delay函数延时基准为1us4HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000000);//配置并启动系...
STM32 HAL库 HAL_Delay配置为微秒级 方案一: 参考博客:https://blog.csdn.net/qq_34752070/article/details/82620374 // HAL_RCC_GetHCLKFreq()/1000 1ms中断一次,即HAL_Delay函数延时基准为1ms // HAL_RCC_GetHCLKFreq()/100000 10us中断一次,即HAL_Delay函数延时基准为10us...