11#include < dma.h>
2+ #include < DMATransfer.h>
23
34/* *
45 * @brief Prepares for DMA Transfer by enabling clocks
56 * and storing the settings in the slots
67 * @param settings : dma transfer settings
78 * @retval None
89 */
9- void DMATransferClass::prepare (dmatransfer_t *settings) {
10+ void DMATransferClass::prepare (dmatransfer_t *settings)
11+ {
1012 if (!_prepared) {
1113 // TODO - figure out which DMA to enable the clock for.
1214 __HAL_RCC_DMA1_CLK_ENABLE ();
13-
15+
1416 memcpy (&_transfer_settings, settings, sizeof (dmatransfer_t ));
1517
16- _transfer_settings.dma_settings .Init .Direction = transfer_direction;
18+ _transfer_settings.dma_settings .Init .Direction = _transfer_settings. transfer_direction ;
1719 _transfer_settings.dma_settings .Init .PeriphInc = DMA_PINC_DISABLE;
1820 _transfer_settings.dma_settings .Init .MemInc = DMA_MINC_DISABLE;
1921 _transfer_settings.dma_settings .Init .PeriphDataAlignment = DMA_PDATAALIGN_WORD;
2022 _transfer_settings.dma_settings .Init .MemDataAlignment = DMA_MDATAALIGN_WORD;
21- _transfer_settings.dma_settings .Init .Mode = settings .circular ? DMA_CIRCULAR : DMA_NORMAL;
23+ _transfer_settings.dma_settings .Init .Mode = _transfer_settings .circular ? DMA_CIRCULAR : DMA_NORMAL;
2224 _transfer_settings.dma_settings .Init .Priority = DMA_PRIORITY_VERY_HIGH;
23- _transfer_settings.dma_settings .Instance = settings .channel_stream ;
25+ _transfer_settings.dma_settings .Instance = _transfer_settings .channel_stream ;
2426 // TODO - intialize the callbacks.
2527
2628 // Perform HAL Initialization first.
27- HAL_DMA_Init (&dmaUpdate );
29+ HAL_DMA_Init (&_transfer_settings. dma_settings );
2830
2931 // Call dma prepare
30- prepare_dma (&_transfer_settings);
32+ prepare_dma (&_transfer_settings. dma_settings );
3133 }
3234}
3335
3436/* *
3537 * @brief Begin the DMA transfer
3638 * @retval None
3739 */
38- void DMATransferClass::begin (int bytes_to_transfer) {
39- if (!prepared) {
40+ void DMATransferClass::begin (int bytes_to_transfer)
41+ {
42+ if (!_prepared) {
4043 // call dma prepare
41- prepare_dma (&_transfer_settings);
44+ prepare_dma (&_transfer_settings. dma_settings );
4245 }
4346
4447 // Reset flags so it starts over
@@ -55,12 +58,13 @@ void DMATransferClass::begin(int bytes_to_transfer) {
5558 * @brief End the DMA transfer
5659 * @retval None
5760 */
58- void DMATransferClass::end () {
61+ void DMATransferClass::end ()
62+ {
5963
60- __HAL_DMA_DISABLE (&_transfer_settings);
64+ __HAL_DMA_DISABLE (&_transfer_settings. dma_settings );
6165
6266 if (_prepared) {
63- end_dma (&_transfer_settings);
67+ end_dma (&_transfer_settings. dma_settings );
6468 _prepared = false ;
6569 }
6670}
0 commit comments