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

2019-10-11 16:47发布

各位大神帮忙过来看看,我设置DAC输出为0-4095,结果用ADC测试一直在1.99V-2.3V直接变化,既达不到0V,也达不到3.3V,都是按照教程来设置的,为啥呢,
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
爱娟娟
1楼-- · 2019-10-11 20:19
问题解决了,也不知道是咋回事,换了一块板子就搞好了,一毛一样的程序,应该是原来那块板子做工有问题吧
止天
2楼-- · 2019-10-11 21:58
 精彩回答 2  元偷偷看……
kingnike
3楼-- · 2019-10-12 00:44
DAC_SetChannel1Data(),这里不是应该是Channel2吗
爱娟娟
4楼-- · 2019-10-12 03:02
止天 发表于 2017-3-8 08:41
没开缓冲器吧

教程要求要关闭缓冲器啊
爱娟娟
5楼-- · 2019-10-12 08:52
kingnike 发表于 2017-3-8 09:03
DAC_SetChannel1Data(),这里不是应该是Channel2吗

以前统一都是Channel1,测试就是不成功的
kingnike
6楼-- · 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上面的代码,你对比看下吧。

一周热门 更多>