huo_hu 发表于 2017-4-22 11:45
测脉宽不用ADC啊,你这么做DMA毫无意义。
你把设计目标摆出来,看看应该怎么做最合理。
我是分别测两个通道值,来计算相位差的,没有测脉宽啊,我发现问题似乎是我用的DMA模式错误,应该用单次模式,可是单次模式后我想在定时器中断中再次打开DMA,就是打开不成功了。
void DMA_Enable(DMA_Stream_TypeDef *DMA_Streamx, u16 num)
{
DMA_Cmd(DMA_Streamx, DISABLE); //1رÕDMA
while (DMA_GetCmdStatus(DMA_Streamx) !=DISABLE ){} //è·±£DMA¿éòÔ±»éèÖÃ
DMA_SetCurrDataCounter(DMA_Streamx, num);
DMA_Cmd(DMA_Streamx,ENABLE);
}
这是我按着原子的程序写的,可是在定时器中断中调用并没反应,DMA启动一次就不启动了。帮看看