图中可以看到H750的SPI时钟源由4路,具体选择哪一种,这个完全是用户一个自定义的行为.
可以在drv_spi.c里面看到下面的代码
#if defined(SOC_SERIES_STM32F0) || defined(SOC_SERIES_STM32G0)
SPI_APB_CLOCK = HAL_RCC_GetPCLK1Freq();
#elif defined(SOC_SERIES_STM32H7)
SPI_APB_CLOCK = HAL_RCC_GetSysClockFreq();
#else
SPI_APB_CLOCK = HAL_RCC_GetPCLK2Freq();
#endif
这个使用宏定义的方式对H7做了单独处理,所以这里获取SPI时钟源的具体频率API是需要做一些修改与调整的.
另外楼主有兴趣的话,自己用CUBEMX新建一个F系列的工程,就能看到F系列的时钟源只有1路.所以在获取SPI时钟源的时候就比较方便了.
图中可以看到H750的SPI时钟源由4路,具体选择哪一种,这个完全是用户一个自定义的行为.
可以在drv_spi.c里面看到下面的代码
#if defined(SOC_SERIES_STM32F0) || defined(SOC_SERIES_STM32G0)
SPI_APB_CLOCK = HAL_RCC_GetPCLK1Freq();
#elif defined(SOC_SERIES_STM32H7)
SPI_APB_CLOCK = HAL_RCC_GetSysClockFreq();
#else
SPI_APB_CLOCK = HAL_RCC_GetPCLK2Freq();
#endif
这个使用宏定义的方式对H7做了单独处理,所以这里获取SPI时钟源的具体频率API是需要做一些修改与调整的.
另外楼主有兴趣的话,自己用CUBEMX新建一个F系列的工程,就能看到F系列的时钟源只有1路.所以在获取SPI时钟源的时候就比较方便了.
举报