用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并没有使能定时器时钟。最后要加上才能正常。。有没有人遇到这种情况的?。。。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>