Модуль 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
- Підключіть
Gpdma_Port.hу вашому проєкті. - Злінкуйте з файлами реалізації модуля Gpdma.
- Налаштуйте модуль відповідно до вашого апаратного забезпечення.
Ліцензія
Цей проєкт ліцензовано за Creative Commons Attribution–NonCommercial 4.0 International (CC BY-NC 4.0).
Ви вільні використовувати, змінювати та поширювати цю роботу в некомерційних цілях за умови належного зазначення авторства.
Повні умови дивіться у LICENSE.md або на creativecommons.org/licenses/by-nc/4.0.
Автори
- Mr.Nobody — embedbits.com
Внески вітаються! Будь ласка, відкрийте pull request.