Advertisement
Guest User

STM32L476 BSP_SD_WriteBlocks_DMA

a guest
Sep 4th, 2017
1,305
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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_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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement