ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Вторник
2 июля
362626 Топик полностью
KT (17.10.2012 18:31, просмотров: 186) ответил koyodza на все флаги DMA (их всего 3 у F10х) могут вызывать прерывание. Но для каждого канала одно общее, внутри нужно разбирать флаги и сбрасывать
Пытаюсь запустить прерывание, пока не работает, вот код   DMA_ITConfig (DMA1_Channel1, DMA_IT_TC, ENABLE); // настройка источника прерывания от канала DMA1 NVIC_InitStructure.NVIC_IRQChannel = DMA1_Channel1_IRQn; NVIC_InitStructure.NVIC_IRQChannelPriority = 0; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); // обработчик прерывания от канала 1 DMA1 void DMA1_Channel1_IRQHandler(void) { /* Test on DMA1 Channel1 Transfer Complete interrupt */ if(DMA_GetITStatus(DMA1_IT_TC1)) { /* DMA1 finished the transfer of SrcBuffer */ EndOfTransfer = 1; DMA_ClearFlag(DMA1_FLAG_TC1); if(flash==0) { GPIO_SetBits(GPIOC, GPIO_Pin_8); flash=128; } else { GPIO_ResetBits(GPIOC, GPIO_Pin_8); flash=0; } DMA_ClearFlag(DMA1_FLAG_TC1); if(rep_num<256) { ++rep_num; a1+=RegularConvData_Tab[2]; a2+=RegularConvData_Tab[1]; a3+=RegularConvData_Tab[0]; } else { /* Convert temperature sensor voltage value in mv */ TempSensVoltmv = a1>>8; /* Convert Vref voltage value in mv */ VrefIntVoltmv = a2>>8; ch1 = a3>>8; a1=0; a2=0; a3=0; rep_num=0; } /* Clear DMA1 Channel1 Half Transfer, Transfer Complete and Global interrupt pending bits */ DMA_ClearITPendingBit(DMA1_IT_GL1); } } В чем могут быть траблы?