tiM1使用DMA 方式来产生PWM不同duty 的波形,想监控一下DMA 是否完成,但是无法进入中断。以下初始化的配置:(PWM 的波形是正确的,但是DMA完成的TC中断一直都没有监控到)
LL_AHB1_GRP1_EnableClock(LL_AHB1_GRP1_PERIPH_DMA1);
/[i] DMA interrupt init //[i] DMA1_Ch4_7_DMAMUX1_OVR_IRQn interrupt configuration /NVIC_SetPriority(DMA1_Ch4_7_DMAMUX1_OVR_IRQn, 0);NVIC_EnableIRQ(DMA1_Ch4_7_DMAMUX1_OVR_IRQn);
/[i] TIM1_UP Init /LL_DMA_SetPeriphRequest(DMA1, LL_DMA_CHANNEL_5, LL_DMAMUX_REQ_TIM1_UP);
LL_DMA_SetDataTransferDirection(DMA1, LL_DMA_CHANNEL_5, LL_DMA_DIRECTION_MEMORY_TO_PERIPH);
LL_DMA_SetChannelPriorityLevel(DMA1, LL_DMA_CHANNEL_5, LL_DMA_PRIORITY_HIGH);
LL_DMA_SetMode(DMA1, LL_DMA_CHANNEL_5, LL_DMA_MODE_CIRCULAR);
LL_DMA_SetPeriphIncMode(DMA1, LL_DMA_CHANNEL_5, LL_DMA_PERIPH_NOINCREMENT);
LL_DMA_SetMemoryIncMode(DMA1, LL_DMA_CHANNEL_5, LL_DMA_MEMORY_INCREMENT);
LL_DMA_SetPeriphSize(DMA1, LL_DMA_CHANNEL_5, LL_DMA_PDATAALIGN_HALFWORD);
LL_DMA_SetMemorySize(DMA1, LL_DMA_CHANNEL_5, LL_DMA_PDATAALIGN_HALFWORD);
LL_DMA_ConfigAddresses(DMA1, LL_DMA_CHANNEL_5, (uint32_t) u16DMA_Buffer_Lower[0], (uint32_t) TIM1->CCR1, LL_DMA_GetDataTransferDirection(DMA1, LL_DMA_CHANNEL_5));
LL_DMA_SetDataLength(DMA1, LL_DMA_CHANNEL_5, 230);LL_DMA_EnableIT_TC(DMA1, LL_DMA_CHANNEL_5);LL_DMA_EnableIT_TE(DMA1, LL_DMA_CHANNEL_5);
LL_DMA_EnableChannel(DMA1, LL_DMA_CHANNEL_5);
LL_TIM_ClearFlag_UPDATE(TIM1);
LL_TIM_EnableIT_UPDATE(TIM1);
LL_TIM_CC_EnableChannel(TIM1, LL_TIM_CHANNEL_CH1);LL_TIM_CC_EnableChannel(TIM1, LL_TIM_CHANNEL_CH1N);
/[i] Enable TIM1 outputs /LL_TIM_EnableAllOutputs(TIM1);
/[i] Enable counter /LL_TIM_EnableCounter(TIM1);
LL_TIM_EnableDMAReq_UPDATE(TIM1);