第一次用
STM32CubeMX,生成MDK工程,感觉很好。外接8MHZ晶振,生成80MHZ系统时钟,现在就是生成的定时时钟与实际有差误,比正常少5倍,比如80MHZ,实际检测下来系统时钟只有16MHZ。
理论:
tiM1:在 Parameter Settings 页配置预分频系数为 79,计数周期(自动加载值)为 332,
定时器溢出频率就是 80MHz/(79+1)/(332+1) = 3.003KHz约3K。
实际:TIM1:在 Parameter Settings 页配置预分频系数为 15,计数周期(自动加载值)为 332,
定时器溢出频率就是 16MHz/(15+1)/(332+1) = 3.003KHz约3K。
TIM6与TIM1一样情况!
请求帮助,谢谢!
*/
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
RCC_OscInitStruct.HSEState = RCC_HSE_BYPASS;
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
RCC_OscInitStruct.PLL.PLLN = 20;
RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV7;
RCC_OscInitStruct.PLL.PLLQ = RCC_PLLQ_DIV2;
RCC_OscInitStruct.PLL.PLLR = RCC_PLLR_DIV2;
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
{
_Error_Handler(__FILE__, __LINE__);
}
发现其中 RCC_OscInitStruct.HSEState = RCC_HSE_BYPASS; 是不是要改为RCC_HSE_ON
这都是自动产生的代码
* @{
*/
#define RCC_HSE_OFF 0x00000000U /*!< HSE clock deactivation */
#define RCC_HSE_ON RCC_CR_HSEON /*!< HSE clock activation */
#define RCC_HSE_BYPASS (RCC_CR_HSEBYP | RCC_CR_HSEON) /*!< External clock source for HSE clock */
定义开开启了
一周热门 更多>