-
求助:GD32E230F8 timer16 dma 变脉宽无法生效问题
本帖最后由杨文天于2023-10-812:24编辑源代码如下:#include"gd32e23x.h"#include#include"gd32e230c_eval.h"#defineTIMER16_CH0CV((uint32_t)0x40014834)uint16_tTX_buffer[3];voiddma_config(void){dma_parameter_structdma_init_struct;rcu_periph_clock_enable(RCU_DMA);syscfg_dma_remap_enable(SYSCFG_DMA_REMAP_TIMER16);/*initializeDMAchannel1*/dma_deinit(DMA_CH1);/*DMAchannel4initialize*/dma_init_struct.periph_addr=(uint32_t)TIMER16_CH0CV;dma_init_struct.periph_inc=DMA_PERIPH_INCREASE_DISABLE;dma_init_struct.memory_addr=(uint32_t)TX_buffer;dma_init_struct.memory_inc=DMA_MEMORY_INCREASE_ENABLE;dma_init_struct.periph_width=DMA_PERIPHERAL_WIDTH_16BIT;dma_init_struct.memory_width=DMA_MEMORY_WIDTH_16BIT;dma_init_struct.direction=DMA_MEMORY_TO_PERIPHERAL;dma_init_struct.number=3;dma_init_struct.priority=DMA_PRIORITY_HIGH;dma_init(DMA_CH1,&dma_init_struct);//dma_memory_to_memory_disable(DMA_CH1);//关闭内存到内存模式/*enableDMAcirculationmode*/dma_circulation_enable(DMA_CH1);/*enableDMAchannel4*/dma_channel_enable(DMA_CH1);//nvic_irq_enable(DMA_Channel3_4_IRQn,1);}voidtimer_config(void){uint16_tperiod=(72000/TX_Frequency_KHZ)-1;timer_oc_parameter_structtimer_ocinitpara;timer_parameter_structtimer_initpara;/*enableTIMERclock*/rcu_periph_clock_enable(RCU_TIMER16);timer_deinit(TIMER16);/*initializeTIMERinitparameterstruct*/timer_struct_para_init(&timer_initpara);/*TIMER0configuration*/timer_initpara.prescaler=0;timer_initpara.alignedmode=TIMER_COUNTER_EDGE;timer_initpara.counterdirection=TIMER_COUNTER_UP;timer_initpara.period=period;timer_initpara.clockdivision=TIMER_CKDIV_DIV1;timer_initpara.repetit
2023-10-08 0