你猜对了! F7也有这种情况... F746的Discovery板... 我用dma读取SD卡情况一样
头和尾总会丢失一部分字节 轮训读写就没有问题 很奇怪
我用 __align(x) 设置了x字节对其以后依旧会出现这样的情况
但是不同的字节对齐丢失的数据多少会不一样... up你问题解决了么? 我设置四字节对齐依旧有丢失..
你DMA的配置能发出来我看看吗?
SD_Handle.hdmarx->Instance = DMA2_Stream3;
SD_Handle.hdmarx->Init.Channel = DMA_CHANNEL_4;
SD_Handle.hdmarx->Init.Direction = DMA_PERIPH_TO_MEMORY;
SD_Handle.hdmarx->Init.FIFOMode = DMA_FIFOMODE_ENABLE;
SD_Handle.hdmarx->Init.FIFOThreshold = DMA_FIFO_THRESHOLD_FULL;
SD_Handle.hdmarx->Init.Mode = DMA_PFCTRL;
SD_Handle.hdmarx->Init.PeriphDataAlignment = DMA_PDATAALIGN_WORD;
SD_Handle.hdmarx->Init.MemDataAlignment = DMA_MDATAALIGN_WORD;
SD_Handle.hdmarx->Init.PeriphBurst = DMA_PBURST_INC4;
SD_Handle.hdmarx->Init.MemBurst = DMA_MBURST_INC4;
SD_Handle.hdmarx->Init.PeriphInc = DMA_PINC_DISABLE;
SD_Handle.hdmarx->Init.MemInc = DMA_MINC_ENABLE;
SD_Handle.hdmarx->Init.Priority = DMA_PRIORITY_VERY_HIGH;
我的配置是这样的
你猜对了! F7也有这种情况... F746的Discovery板... 我用dma读取SD卡情况一样
头和尾总会丢失一部分字节 轮训读写就没有问题 很奇怪
我用 __align(x) 设置了x字节对其以后依旧会出现这样的情况
但是不同的字节对齐丢失的数据多少会不一样... up你问题解决了么? 我设置四字节对齐依旧有丢失..
你DMA的配置能发出来我看看吗?
SD_Handle.hdmarx->Instance = DMA2_Stream3;
SD_Handle.hdmarx->Init.Channel = DMA_CHANNEL_4;
SD_Handle.hdmarx->Init.Direction = DMA_PERIPH_TO_MEMORY;
SD_Handle.hdmarx->Init.FIFOMode = DMA_FIFOMODE_ENABLE;
SD_Handle.hdmarx->Init.FIFOThreshold = DMA_FIFO_THRESHOLD_FULL;
SD_Handle.hdmarx->Init.Mode = DMA_PFCTRL;
SD_Handle.hdmarx->Init.PeriphDataAlignment = DMA_PDATAALIGN_WORD;
SD_Handle.hdmarx->Init.MemDataAlignment = DMA_MDATAALIGN_WORD;
SD_Handle.hdmarx->Init.PeriphBurst = DMA_PBURST_INC4;
SD_Handle.hdmarx->Init.MemBurst = DMA_MBURST_INC4;
SD_Handle.hdmarx->Init.PeriphInc = DMA_PINC_DISABLE;
SD_Handle.hdmarx->Init.MemInc = DMA_MINC_ENABLE;
SD_Handle.hdmarx->Init.Priority = DMA_PRIORITY_VERY_HIGH;
我的配置是这样的
举报