原子哥,江湖救急!!!,电子竞赛当中。
手册里说:在双DAC模式下,可以同时进行转换并同步地更新2个通道的输出。
可是我的结果是两路同一时刻只能输出一个,交替输出,当一个输出时,另一路就输出0,这里关键是设置那个寄存器,手册也没明说。
//DAC通道1输出初始化
void Dac1_Init(void)
{
RCC->APB2ENR|=1<<2; //使能PORTA时钟
RCC->APB1ENR|=1<<29; //使能DAC时钟
GPIOA->CRL&=0XFF00FFFF;
GPIOA->CRL|=0X00000000;//PA4 PA5模拟输入
DAC->CR|=1<<0; //使能DAC1
DAC->CR|=1<<1; //DAC1输出缓存不使能 BOFF1=1
DAC->CR|=0<<2; //不使用触发功能 TEN1=0
DAC->CR|=0<<3; //DAC TIM6 TRGO,不过要TEN1=1才行
DAC->CR|=0<<6; //不使用波形发生
DAC->CR|=0<<8; //屏蔽、幅值设置
DAC->CR|=0<<12; //DAC1 DMA不使能
DAC->CR|=1<<16; //使能DAC1
DAC->CR|=1<<17; //DAC1输出缓存不使能 BOFF1=1
DAC->CR|=0<<18; //不使用触发功能 TEN1=0
DAC->CR|=0<<19; //DAC TIM6 TRGO,不过要TEN1=1才行
DAC->CR|=0<<22; //不使用波形发生
DAC->CR|=0<<24; //屏蔽、幅值设置
DAC->CR|=0<<28; //DAC1 DMA不使能
}
|