为什么STM32CubeMX的生成的代码用不了呢?关于TIM3-CH4-PWM 输出功能的

2019-07-21 07:47发布

用STM32CubeMX上生成了一个PWM输出的代码,但不能用。反复与原子的例程对比,发现初始化IO口那块的先后顺序不同。
  GPIO_InitTypeDef GPIO_InitStruct;

    /**TIM3 GPIO Configuration   
    PB1     ------> TIM3_CH4
    */

    GPIO_InitStruct.Pin = GPIO_PIN_1;
    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);

就是这部分的IO初始化代码,CubeMX是放在最后才调用的。而原子的代码是在函数HAL_TIM_PWM_MspInit里面调用,然后在HAL_TIM_PWM_Init里面被调用。最后发现把这段代码放在与原子例程相同的位置就行了。并且调用这段程序之前还需要使能IO外设时钟和TIM3时钟才能正常。而CubeMX并没有使能定时器时钟。最后要加上才能正常。。有没有人遇到这种情况的?。。。


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。