Перейти до основного вмісту

Модуль GPDMA MCAL

Підтримувані родини STM32: H5 · U5
Не підтримуються: G4, H7, L4

Огляд​

Модуль Gpdma (General-Purpose DMA) у MCAL надає абстракцію для налаштування та керування передачами DMA в мікроконтролерах STM32. Він відкриває публічні типи та структури конфігурації для гнучкого використання DMA у вбудованих застосунках.

Структура файлів​

  • Gpdma_Port.h — оголошує функції публічного API модуля Gpdma.
  • Gpdma_Types.h — визначає публічні типи, перелічення та структури, що використовуються в API Gpdma.
  • Gpdma.c — реалізує функціональність модуля Gpdma.

Публічний API​

Публічні функції​

Усі публічні функції оголошено в Gpdma_Port.h. Ці функції надають доступ до конфігурації DMA, керування передачею та запитів стану. Приклади функцій:

  • Gpdma_Init(const gpdma_ConfigStruct_t* config)
  • Gpdma_StartTransfer(gpdma_PeriphId_t periph, gpdma_ChannelId_t channel, const gpdma_TransferConfig_t* xferConfig)
  • Gpdma_StopTransfer(gpdma_PeriphId_t periph, gpdma_ChannelId_t channel)
  • Gpdma_GetTransferState(gpdma_PeriphId_t periph, gpdma_ChannelId_t channel)

Повний перелік і документацію доступних функцій дивіться в Gpdma_Port.h.

Публічні типи​

Усі публічні типи, що використовуються в API Gpdma, визначено в Gpdma_Types.h. Серед них:

  • Перелічення для периферії DMA, каналів, напрямків, пріоритетів, подій і помилок (наприклад, gpdma_PeriphId_t, gpdma_ChannelId_t, gpdma_Direction_t)
  • Структури конфігурації (наприклад, gpdma_TransferConfig_t, gpdma_ConfigStruct_t)
  • Типи вказівників на callback-функції для переривань

Детальні визначення типів та їхні описи дивіться в Gpdma_Types.h.

Приклад використання​

#include "Gpdma_Port.h"
gpdmaTransferConfigt xferConfig = { // Initialize transfer configuration fields };

gpdmaConfigStructt dmaConfig = { .PeriphId = GPDMAPERIPH1, .ChannelId = GPDMACHANNEL0, .TransferConfig = &xferConfig, .TransfersCount = 1, // Other fields as needed };

int main(void) { GpdmaInit(&dmaConfig); GpdmaStartTransfer(GPDMAPERIPH1, GPDMACHANNEL0, &xferConfig); // … }

🛠 Інтеграція з CMake​

  1. Підключіть Gpdma_Port.h у вашому проєкті.
  2. Злінкуйте з файлами реалізації модуля Gpdma.
  3. Налаштуйте модуль відповідно до вашого апаратного забезпечення.

Ліцензія​

Цей проєкт ліцензовано за Creative Commons Attribution–NonCommercial 4.0 International (CC BY-NC 4.0).

Ви вільні використовувати, змінювати та поширювати цю роботу в некомерційних цілях за умови належного зазначення авторства.

Повні умови дивіться у LICENSE.md або на creativecommons.org/licenses/by-nc/4.0.


Автори​

Внески вітаються! Будь ласка, відкрийте pull request.