大家好:
我现在的设计需要用到DA,转换速率100K左右。以前用的都是DA新片。现在改用stm32,它自己有DA,因此想用它自带的DA,但是发现点疑问。
,假设他是转换时间的话,他的转化速度是1M,也就是说从0x000到0xfff的时间是1us。而我写了一个程序测试了一下。初始化程序这里就不写了,没有问题,操作程序是:
INT16U da=0;
void delay_us( INT32S time )
{
da=(~da);
do
{
time--;
}
while ( time > 1 );
}
int main (void)
{
INT8U reset_bit=0;
RCC_Configuration();
GPIO_Configuration();//初始化端口
DAC_Configuration();
delay_us(time);
DAC_SetChannel2Data(DAC_Align_12b_R, da);
DAC_SoftwareTriggerCmd(DAC_Channel_2, ENABLE);
}
}
首先说明延时程序是1us没有问题,用示波器测过,下面是time分别设置为1、10、20的波形。波形下面的黄色线为地,Y轴每隔1V,X轴每隔2.5us
波形为什么不是方波而是三角波啊。我的DA管脚什么都没接,悬空状态下测量的,如果他的转换速度能够达到1M的话是不是应该是方波。 |