还有个问题 请看
while (1)
{
#if 1
if(!DMA_GetFlagStatus(DMA1_FLAG_TC5) == RESET)
{ DMA_ClearFlag(DMA1_FLAG_TC5);
GPIO_WriteBit(GPIOC, GPIO_Pin_6, (BitAction)((1-GPIO_ReadOutputDataBit(GPIOC, GPIO_Pin_6))));
RestartUSART_DMA();
}
#endif
for(time=0;time<0xfff;time++);
}
在循环里 检测然后处理 那个延时代表别的函数 只要是别的函数运行的超过一定时间 也不能从新开启dma了
为什么啊 难道是在下一次之前不清楚标志位的话 会出现什么错误 请高手验证一下? |