Например TDA7294

Форум РадиоКот • Просмотр темы - STM32F103 и STM32F030 разница в обработке прерываний DMA
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Сб апр 27, 2024 16:59:31

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: STM32F103 и STM32F030 разница в обработке прерываний DMA
СообщениеДобавлено: Ср янв 17, 2024 18:14:48 
Открыл глаза

Зарегистрирован: Вт июл 17, 2018 09:52:27
Сообщений: 60
Рейтинг сообщения: 0
Доброго времени суток
Работая USART используя DMA. Обычно использую контроллер STM32F103C8T6.
И вот решил для небольшого проекта использовать STM32F030C8T6
В части необходимой периферии в нем всего хватает, но выяснилось что CubeMX по разному в проекте генерирует обработчики прерываний DMA.

Если проект генерируется для STM32F103, то в фале stm32f1xx_it.c генерируется два обработчика. Отдельный обработчик для каждого канала DMA
Код:
void DMA1_Channel6_IRQHandler(void)
{
  /* USER CODE BEGIN DMA1_Channel6_IRQn 0 */

  /* USER CODE END DMA1_Channel6_IRQn 0 */
  HAL_DMA_IRQHandler(&hdma_usart2_rx);
  /* USER CODE BEGIN DMA1_Channel6_IRQn 1 */

  /* USER CODE END DMA1_Channel6_IRQn 1 */
}

/**
  * @brief This function handles DMA1 channel7 global interrupt.
  */
void DMA1_Channel7_IRQHandler(void)
{
  /* USER CODE BEGIN DMA1_Channel7_IRQn 0 */

  /* USER CODE END DMA1_Channel7_IRQn 0 */
  HAL_DMA_IRQHandler(&hdma_usart2_tx);
  /* USER CODE BEGIN DMA1_Channel7_IRQn 1 */

  /* USER CODE END DMA1_Channel7_IRQn 1 */
}


а если проект генерировать для STM32F030 то создается один обработчик для обоих прерываний
Код:
/**
  * @brief This function handles DMA1 channel 4 and 5 interrupts.
  */
void DMA1_Channel4_5_IRQHandler(void)
{
  /* USER CODE BEGIN DMA1_Channel4_5_IRQn 0 */

  /* USER CODE END DMA1_Channel4_5_IRQn 0 */
  HAL_DMA_IRQHandler(&hdma_usart2_tx);
  HAL_DMA_IRQHandler(&hdma_usart2_rx);
  /* USER CODE BEGIN DMA1_Channel4_5_IRQn 1 */

  /* USER CODE END DMA1_Channel4_5_IRQn 1 */
}


Это какая то особенность STM32F030? И как в обработчике понять по какому каналу произошло прерывание?

Добавлено after 11 minutes 43 seconds:
Немного поковырялся в проектах, нашел два файла
startup_stm32F103c8tx.s и startup_stm32f030c8tx.s
Похоже это файл с векторами прерываний, где заданы адреса callback функций и в одном случае два слова под адреса в другом одно.
Похоже что контроллеры прерываний разные.....

А как тогда понять по какому событию произошло прерывание?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32F103 и STM32F030 разница в обработке прерываний DMA
СообщениеДобавлено: Ср янв 17, 2024 18:57:50 
Мучитель микросхем

Карма: 24
Рейтинг сообщений: 137
Зарегистрирован: Ср июн 08, 2011 20:25:20
Сообщений: 423
Рейтинг сообщения: 0
А как тогда понять по какому событию произошло прерывание?
Флаги посмотреть :)

HAL_DMA_IRQHandler(&hdma_usart2_tx);
//Проверить статус.
hdma_usart2_tx.State измениться с HAL_DMA_STATE_BUSY (0x02) на HAL_DMA_STATE_READY(0x01), если здесь сработало;
HAL_DMA_IRQHandler(&hdma_usart2_rx);
//Проверить статус.
hdma_usart2_rx.State измениться с HAL_DMA_STATE_BUSY (0x02) на HAL_DMA_STATE_READY(0x01), если здесь сработало;


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32F103 и STM32F030 разница в обработке прерываний DMA
СообщениеДобавлено: Ср янв 17, 2024 22:33:46 
Открыл глаза

Зарегистрирован: Вт июл 17, 2018 09:52:27
Сообщений: 60
Рейтинг сообщения: 0
Цитата:
Флаги посмотреть


Идея понятна, спасибо. Буду пробовать


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 19


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y