本帖最后由 winrar 于 2016-10-21 10:40 编辑
请教大家个问题啊:
用STM32F072C8,DMA传输数据到DAC
PA5管脚输出,用DMA1_Channel4,TIM2作为TRGO
配置好DMA1_Channel4,使能
DMA1->ISR中DMA1_Channel4除传输错误外立马全部置1
{
DMA1_Channel4->CPAR = DAC_DHR12R_Address;
DMA1_Channel4->CMAR = (uint32_t)&Sine12bit;
DMA1_Channel4->CNDTR = 640;
DMA1_Channel4->CCR = 0x00002590;
DMA1_Channel4->CCR |= DMA_CCR_EN;
while(DMA1->ISR&DMA_ISR_TCIF4 == 0){;}
DMA1_Channel4->CCR &= (uint16_t)(~DMA_CCR_EN);
DMA1->IFCR |= DMA1_CHANNEL4_IT_MASK;
}
最后三句话不加的话能输出20个正弦波(Sine12bit数据)
加了最后三句话没正弦波
抓波形的话就只输出第一个数据就立马停止了
单步调试的话
DMA1_Channel4->CCR |= DMA_CCR_EN;
执行完毕后,DMA1->ISR&DMA_ISR_TCIF4就立马置位了
哪位大神给点建议啊
|