Data Counter functions.
More...
|
void | DMA_SetCurrDataCounter (DMA_Stream_TypeDef *DMAy_Streamx, uint16_t Counter) |
| Writes the number of data units to be transferred on the DMAy Streamx. More...
|
|
uint16_t | DMA_GetCurrDataCounter (DMA_Stream_TypeDef *DMAy_Streamx) |
| Returns the number of remaining data units in the current DMAy Streamx transfer. More...
|
|
Data Counter functions.
===============================================================================
Data Counter functions
===============================================================================
This subsection provides function allowing to configure and read the buffer size
(number of data to be transferred).
The DMA data counter can be written only when the DMA Stream is disabled
(ie. after transfer complete event).
The following function can be used to write the Stream data counter value:
- void DMA_SetCurrDataCounter(DMA_Stream_TypeDef* DMAy_Streamx, uint16_t Counter);
@note It is advised to use this function rather than DMA_Init() in situations where
only the Data buffer needs to be reloaded.
@note If the Source and Destination Data Sizes are different, then the value written in
data counter, expressing the number of transfers, is relative to the number of
transfers from the Peripheral point of view.
ie. If Memory data size is Word, Peripheral data size is Half-Words, then the value
to be configured in the data counter is the number of Half-Words to be transferred
from/to the peripheral.
The DMA data counter can be read to indicate the number of remaining transfers for
the relative DMA Stream. This counter is decremented at the end of each data
transfer and when the transfer is complete:
- If Normal mode is selected: the counter is set to 0.
- If Circular mode is selected: the counter is reloaded with the initial value
(configured before enabling the DMA Stream)
The following function can be used to read the Stream data counter value:
- uint16_t DMA_GetCurrDataCounter(DMA_Stream_TypeDef* DMAy_Streamx);
uint16_t DMA_GetCurrDataCounter |
( |
DMA_Stream_TypeDef * |
DMAy_Streamx | ) |
|
Returns the number of remaining data units in the current DMAy Streamx transfer.
- Parameters
-
DMAy_Streamx,: | where y can be 1 or 2 to select the DMA and x can be 0 to 7 to select the DMA Stream. |
- Return values
-
The | number of remaining data units in the current DMAy Streamx transfer. |
void DMA_SetCurrDataCounter |
( |
DMA_Stream_TypeDef * |
DMAy_Streamx, |
|
|
uint16_t |
Counter |
|
) |
| |
Writes the number of data units to be transferred on the DMAy Streamx.
- Parameters
-
DMAy_Streamx,: | where y can be 1 or 2 to select the DMA and x can be 0 to 7 to select the DMA Stream. |
Counter,: | Number of data units to be transferred (from 0 to 65535) Number of data items depends only on the Peripheral data format. |
- Note
- If Peripheral data format is Bytes: number of data units is equal to total number of bytes to be transferred.
-
If Peripheral data format is Half-Word: number of data units is equal to total number of bytes to be transferred / 2.
-
If Peripheral data format is Word: number of data units is equal to total number of bytes to be transferred / 4.
-
In Memory-to-Memory transfer mode, the memory buffer pointed by DMAy_SxPAR register is considered as Peripheral.
- Return values
-
The | number of remaining data units in the current DMAy Streamx transfer. |