Форум РадиоКот https://radiokot.ru/forum/ |
|
DMA+SPI+STM32f103. Трабл с прерыванием. https://radiokot.ru/forum/viewtopic.php?f=59&t=149583 |
Страница 2 из 2 |
Автор: | Frogfot [ Чт апр 25, 2019 10:24:13 ] |
Заголовок сообщения: | Re: DMA+SPI+STM32f103. Трабл с прерыванием. |
Запустил DMA с таким кодом: Код: void Init_DMA5 (void) // DMA для работы с SPI2 на прием и передачу { RCC->AHBENR |= RCC_AHBENR_DMA1EN; // Enable Clock DMA1 DMA1_Channel5->CCR &= (uint32_t)(~DMA_CCR5_EN); // Disable DMA while (DMA1_Channel5->CCR & DMA_CCR5_EN); DMA1_Channel5->CCR = DMA_CCR5_DIR | // Data transfer direction - Read from memory DMA_CCR5_MINC | // Memory increment mode enabled DMA_CCR5_TCIE; // Transfer complete interrupt enable NVIC_EnableIRQ(DMA1_Channel5_IRQn); // Enable Interrupt DMA1 Channel5 NVIC_SetPriority(DMA1_Channel5_IRQn,14); } Код: void Start_DMA5 (void) // DMA work SPI2 Transmitte
{ DMA1_Channel5->CCR &= (uint32_t)(~DMA_CCR5_EN); // Disable DMA while (DMA1_Channel5->CCR & DMA_CCR5_EN); DMA1_Channel5->CMAR = (uint32_t)&(ScreenBuf[0+(AdressLED<<4)]); DMA1_Channel5->CPAR = (uint32_t)&(SPI2->DR);; DMA1_Channel5->CNDTR = DMA_BUFF_SIZE; // number of data DMA1_Channel5->CCR |= (uint32_t) DMA_CCR5_EN; // Channel enable } |
Страница 2 из 2 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |