TIMx_DCR 寄存器配置
在 CubeMX 生成代码后,添加以下代码,将 TIM 与 DMA 通道绑定,并配置TIMx_DCR 寄存器:
MX_TQ1_Config();
/* Link created queue to DMA channel #######################################*/
if (HAL_DMAEx_List_LinkQ(&handle_GPDMA1_Channel12, &TQ1) != HAL_OK)
{
Error_Handler();
}
__HAL_LINKDMA(&htim1, hdma[TIM_DMA_ID_CC1], handle_GPDMA1_Channel12);
__HAL_TIM_ENABLE_DMA(&htim1, TIM_DMA_UPDATE);
HAL_DMAEx_List_Start_IT(&handle_GPDMA1_Channel12);
// update 事件触发 DMA burst
// 3 个 DMA transfer,分别修改 ARR/ RCR/ CCR1 寄存器
// TIM 寄存器作为基地址的索引,ARR 寄存器索引为 11
htim1.Instance->DCR = (1<<16) | ((3-1)<<8) | (11<<0);
HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_1);
|