stm32_DAC可以用来输出固定的电压值,有些时候需要按键可调输出的电压值。其中一种方法是使用外部中断EXTI9, 另外一种方法就是使用软件触发。
如果将DAC_InitTypeDef.DAC_Trigger设置为DAC_Trigger_None, 那么,不需要其他任何的触发源,直接使用DAC_SetChannelxData(),就可以设定输出电压的大小。如果使用了软件触发,那么,每次在使用DAC_SetChannelxData()修改输出电压后,还需要调用DAC_SoftwareTriggerCmd(),目的是使能软件触发。由于:软件触发是硬件在一个APB1时钟周期后自动关断的,于是,每次修改输出电压的值后,都要调用DAC_SoftwareTriggerCmd()方法,才能生效。
下面是例子:(关键代码)
1. DAC_Config(){
DAC_Trigger = DAV_Trigger_Software;
DAC_SetChannel1Data(DAC_Align_12b_R,1023);
}
main(){
DAC_SetChannel1Data(DAC_Align_12b_R,2047);
DAC_SoftwareTriggerCmd(DAC_Channel_1,ENABLE);
DAC_SetChannel1Data(DAC_Align_12b_R,4095);
}
请问最终输出的电压是多少伏?(如果实在想不出答案的话,可以留言)
A. 3.3/4
B. 3.3/2
C. 3.3
2.将1题的DAC_Trigger_Sofeware 改为DAC_Trigger_None后,最后输出的电压是多少伏?