Guest User

STM32L476 BSP_SD_WriteBlocks_DMA

a guest
Sep 4th, 2017
48
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.80 KB | None | 0 0
  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)) {
  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