ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
26 апреля
972547 Топик полностью
evgeniy1294 (22.01.2020 20:10 - 20:21, просмотров: 248) ответил zzz-spider на Проблема в том, что не могу заставить дергать DMAMUX с помощью событий, приходящих от TIM15. Наблюдая за регистрами DMAMUX, вижу, как меняется их значения по другим каналам. Тот канал DMAMUX, который завязан на TIM15, никаких телодвижений нет.
У меня как-то так сделано на stm32mp157. А вот над этим куском кода я экспрериментировал, когда нужно было выплевывать значения в gpio через dma с синхронизацией по таймеру (stm32f4xx):  void dma_tim_test() { { RCC->APB2ENR |= RCC_APB2ENR_TIM1EN; mcu::tim::init(TIM1, mcu::tim::direction_t::up); mcu::tim::stop(TIM1); TIM1->DIER |= TIM_DIER_TDE | TIM_DIER_UDE; TIM1->CR1 |= TIM_CR1_URS; TIM1->CR2 |= 0b010 << TIM_CR2_MMS_Pos; TIM1->ARR = 500; TIM1->EGR = TIM_EGR_UG; while(TIM1->EGR & TIM_EGR_UG); TIM1->EGR = TIM_EGR_UG; TIM1->DIER &= ~TIM_DIER_UIE; TIM1->DCR &= ~TIM_DCR_DBA; TIM1->DCR &= ~TIM_DCR_DBL; } // TIM5 TRIG DMA Channel - for gpio mcu::dma::init(DMA2_Stream5, channel_t::_6, direction_t::MtoP, priority_t::medium, width_t::half_word); DMA2_Stream5->CR |= DMA_SxCR_CIRC; // DMA Transfer mcu::dma::transaction(DMA2_Stream5, mcu::dma::direction_t::MtoP, (uint32_t)mask, (uint32_t)&GPIOC->ODR, 4); mcu::tim::start(TIM1); return; }