Например TDA7294

Форум РадиоКот :: Просмотр темы - DMA+SPI+STM32f103. Трабл с прерыванием.
Форум РадиоКот
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/