问答

汇集网友智慧,解决技术难题

sadasdafaffg

TA的家园币:14  

  • 为什么我的 PWM DMA 不起作用 是那里配置错了吗

    这是代码DMA一直没更新成功buf#include"bsp_pwm.h"//#include"ws2812.h"#include"gd32f4xx.h"uint16_tLED_Buff[RGB_LEN];voidTim4CH2_init_DMA(uint32_tnumber);#defineTIMER4_CH2CV(TIMER4+0x3C)/*通道2*/voidTimer4_init(void){rcu_periph_clock_enable(RCU_TIMER4);rcu_periph_clock_enable(RCU_GPIOA);rcu_periph_clock_enable(RCU_DMA0);dma_single_data_parameter_structdma_data_parameter;timer_oc_parameter_structtimer_ocintpara;timer_parameter_structtimer_initpara;gpio_mode_set(GPIOA,GPIO_MODE_AF,GPIO_PUPD_NONE,GPIO_PIN_2);gpio_output_options_set(GPIOA,GPIO_OTYPE_PP,GPIO_OSPEED_50MHZ,GPIO_PIN_2);gpio_af_set(GPIOA,GPIO_AF_2,GPIO_PIN_2);/*TIMER4configuration*/timer_initpara.prescaler=299;//时钟预分频数(200)M/10/25=0.8mHz=800KHztimer_initpara.alignedmode=TIMER_COUNTER_EDGE;//向上&向下都是边沿对齐timer_initpara.counterdirection=TIMER_COUNTER_UP;timer_initpara.period=999;/*自动重装载寄存器周期的值(计数值)*/timer_initpara.clockdivision=TIMER_CKDIV_DIV1;timer_initpara.repetitioncounter=0;timer_init(TIMER4,&timer_initpara);/*TIMER1channel3configurationinPWMmode*/timer_ocintpara.outputstate=TIMER_CCX_ENABLE;timer_ocintpara.ocpolarity=TIMER_OC_POLARITY_HIGH;timer_channel_output_config(TIMER4,TIMER_CH_2,&timer_ocintpara);timer_channel_output_pulse_value_config(TIMER4,TIMER_CH_2,500);//占空比=TIMERx_CHxCV/TIMERx_CARtimer_channel_output_mode_config(TIMER4,TIMER_CH_2,TIMER_OC_MODE_PWM0);timer_channel_output_shadow_config(TIMER4,TIMER_CH_2,TIMER_OC_SHADOW_DISABLE);//TIMER_OC_SHADOW_ENABLEtimer_auto_reload_shadow_disable(TIMER4);//timer_dma_transfer_config//timer_dma_enable(TIMER4,TIMER_DMA_UPD);//timer_disable

    DMA PWM timer TI IO

    2025-12-10 0