Romanello 0 24 января Опубликовано 24 января (изменено) · Жалоба Подскажите пожалуйста, кто то реализовывал передачу данных по DMA в DAC на GD32F470 в 16 битном режиме? Попробовал пример от Gigadevice в 8 битном режиме, работает, как только переделал в 16 битный режим, то началась какафония на выходе, хотя должен быть меандр Spoiler #define DAC1_R12DH_ADDRESS 0x40007414 const uint16_t dataDAC[8] = {0x00, 0x00, 0x00, 0x00, 0x0FF, 0x0FF, 0x0FF, 0x0FF}; void timer5_config(void) { rcu_periph_clock_enable(RCU_TIMER5); timer_prescaler_config(TIMER5, 0xF, TIMER_PSC_RELOAD_UPDATE); timer_autoreload_value_config(TIMER5, 0xFF); timer_master_output_trigger_source_select(TIMER5, TIMER_TRI_OUT_SRC_UPDATE); timer_enable(TIMER5); } void dac_config(void) { rcu_periph_clock_enable(RCU_DAC); dac_deinit(); dac_trigger_source_config(DAC1, DAC_TRIGGER_T5_TRGO); dac_trigger_enable(DAC1); dac_wave_mode_config(DAC1, DAC_WAVE_DISABLE); dac_output_buffer_enable(DAC1); dac_enable(DAC1); dac_dma_enable(DAC1); } void dma_config(void) { dma_single_data_parameter_struct dma_struct; rcu_periph_clock_enable(RCU_DMA0); dma_flag_clear(DMA0, DMA_CH6, DMA_INTF_FEEIF); dma_flag_clear(DMA0, DMA_CH6, DMA_INTF_SDEIF); dma_flag_clear(DMA0, DMA_CH6, DMA_INTF_TAEIF); dma_flag_clear(DMA0, DMA_CH6, DMA_INTF_HTFIF); dma_flag_clear(DMA0, DMA_CH6, DMA_INTF_FTFIF); dma_channel_subperipheral_select(DMA0, DMA_CH6, DMA_SUBPERI7); dma_struct.periph_addr = DAC1_R12DH_ADDRESS; dma_struct.memory0_addr = (uint32_t)dataDAC; dma_struct.direction = DMA_MEMORY_TO_PERIPH; dma_struct.number = 8; dma_struct.periph_inc = DMA_PERIPH_INCREASE_DISABLE; dma_struct.memory_inc = DMA_MEMORY_INCREASE_ENABLE; dma_struct.periph_memory_width = DMA_PERIPH_WIDTH_16BIT; dma_struct.priority = DMA_PRIORITY_ULTRA_HIGH; dma_struct.circular_mode = DMA_CIRCULAR_MODE_ENABLE; dma_single_data_mode_init(DMA0, DMA_CH6, &dma_struct); dma_channel_enable(DMA0, DMA_CH6); } Изменено 29 января пользователем haker_fox Код следует помещать в теги <>, а длинный код спрятать под сойлер. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться