我在 STM32CubeMX2 中配置了一个定时器,使用 2 个通道`HAL_TIM_CHANNEL_1`和`HAL_TIM_CHANNEL_3`。在`mx_system_init()`之后,我使用如下代码:
hal_tim_handle_t *htim5 = mx_tim5_gethandle();
if (HAL_TIM_OC_StartChannel(htim5, HAL_TIM_CHANNEL_1) != HAL_OK) {
return (-1);
}
if (HAL_TIM_OC_StartChannel(htim5, HAL_TIM_CHANNEL_3) != HAL_OK) {
return (-1);
}
if (HAL_TIM_Start(htim5) != HAL_OK) {
return (-1);
}
第一个通道正常启动,但当我尝试启动第二个通道时,代码在`HAL_TIM_OC_StartChannel`中触发了断言:
/* Check and update the channel state */
ASSERT_DBG_STATE(htim->channel_states[channel],
HAL_TIM_OC_CHANNEL_STATE_IDLE);
需要做不同的处理吗?
|