feilusia 发表于 2013-11-25 17:42
因为你在DMA的中断函数里没有判断数据是否传完。
进DMA的中断函数不代表数据已经传输完毕,它会剩7位数据需 ...
谢谢你的答复,
你是指下面的这两句判断DMA传输完成及其状态吗?
while(SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_TXE) == RESET);
while(SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_BSY) == SET)
{};
我使用的其他DMA配合SPI在传输后都是这样进行判断的,没有出现问题。这次配合SPI写数据到Flash则出现这个问题,非常奇怪!! |