DAC输出应该是0V,结果直接干到2V了,我也是醉了

2019-10-11 16:47发布

各位大神帮忙过来看看,我设置DAC输出为0-4095,结果用ADC测试一直在1.99V-2.3V直接变化,既达不到0V,也达不到3.3V,都是按照教程来设置的,为啥呢,
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
11条回答
kingnike
2019-10-12 09:29
[mw_shl_code=applescript,true]void dac_init(void)
{
        /* Init Structure definition */
        DAC_InitTypeDef            DAC_InitStructure;
/* DAC Periph clock enable */
          RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC, ENABLE);
        /* DAC channel1 Configuration */
        DAC_InitStructure.DAC_Trigger = DAC_Trigger_Software;
        DAC_InitStructure.DAC_WaveGeneration = DAC_WaveGeneration_None;
        DAC_InitStructure.DAC_OutputBuffer = DAC_OutputBuffer_Enable;//使能输出缓存,增大驱动外部电路能力
        DAC_Init(DAC_Channel_2, &DAC_InitStructure);
   /* Enable DAC Channel2: Once the DAC channel2 is enabled, PA.05 is
     automatically connected to the DAC converter. */
    DAC_Cmd(DAC_Channel_2, ENABLE);

}[/mw_shl_code]

[mw_shl_code=applescript,true]/*****************************************************************************
*@DAC控制函数,DAC1用于控制液晶对比度调节
*@传递参数:1000倍目标电压值。最大可输出3.23V,最小为0.
******************************************************************************/
void dac_ctr(s32 vol)
{
        u16 ctrdata=0;
        float temp=0;
        temp=(float)vol/1000; //real voltage
        ctrdata=temp/3.23*4095;
        if(ctrdata>4095)
        ctrdata=4095;
        DAC_SetChannel2Data (DAC_Align_12b_R,ctrdata);//12bit dac,right alignement,
        /* Start DAC Channel2 conversion by software */
        DAC_SoftwareTriggerCmd(DAC_Channel_2, ENABLE);

}[/mw_shl_code]


这是以前F100上面的代码,你对比看下吧。

一周热门 更多>