Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- uint8_t BSP_SD_WriteBlocks_DMA(uint32_t *pData, uint32_t WriteAddr,
- uint32_t NumOfBlocks)
- {
- uint32_t tickstart = HAL_GetTick();
- /* Write block(s) in DMA transfer mode */
- if (HAL_SD_WriteBlocks_DMA(&_HSD, (uint8_t *) pData, WriteAddr, NumOfBlocks)
- != HAL_OK)
- {
- return MSD_ERROR;
- }
- // Polling DMA and SMDDC for end of transfer
- while((HAL_DMA_GetState(&hdma_sdmmc1_tx)!=HAL_DMA_STATE_READY)) {
- if((HAL_GetTick() - tickstart) >= SD_WAIT_TIMEOUT)
- {
- return HAL_TIMEOUT;
- }
- }
- tickstart = HAL_GetTick();
- while((HAL_SD_GetState(&_HSD) != HAL_SD_STATE_READY)) {
- if((HAL_GetTick() - tickstart) >= SD_WAIT_TIMEOUT)
- {
- return HAL_TIMEOUT;
- }
- }
- return MSD_OK;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement