代码改变世界

STM32_DAC之软件触发(Trigger)

2017-04-01 17:23  斑鸠,一生。  阅读(5598)  评论(0编辑  收藏  举报

         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后,最后输出的电压是多少伏?