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 | } |