View difference between Paste ID: Eavqk902 and HeGF4eLp
SHOW: | | - or go back to the newest paste.
1
uint8_t BSP_SD_WriteBlocks_DMA(uint32_t *pData, uint32_t WriteAddr,
2
    uint32_t NumOfBlocks)
3
{
4
5
	uint32_t tickstart = HAL_GetTick();
6
7
  /* Write block(s) in DMA transfer mode */
8
  if (HAL_SD_WriteBlocks_DMA(&_HSD, (uint8_t *) pData, WriteAddr, NumOfBlocks)
9
      != HAL_OK)
10
  {
11
    return MSD_ERROR;
12
  }
13
14
  // Polling DMA and SMDDC for end of transfer
15-
    while((HAL_DMA_GetState(&hdma_sdmmc1_rx)!=HAL_DMA_STATE_READY)) {
15+
    while((HAL_DMA_GetState(&hdma_sdmmc1_tx)!=HAL_DMA_STATE_READY)) {
16
17
  	  if((HAL_GetTick() - tickstart) >=  SD_WAIT_TIMEOUT)
18
  	      {
19
  	        return HAL_TIMEOUT;
20
  	      }
21
22
    }
23
24
    tickstart = HAL_GetTick();
25
26
    while((HAL_SD_GetState(&_HSD) != HAL_SD_STATE_READY)) {
27
28
    	  if((HAL_GetTick() - tickstart) >=  SD_WAIT_TIMEOUT)
29
    	      {
30
    	        return HAL_TIMEOUT;
31
    	      }
32
33
      }
34
35
  return MSD_OK;
36
}