OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2966|回复: 11

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

[复制链接]

9

主题

57

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2017-1-6
在线时间
32 小时
发表于 2017-3-7 21:33:05 | 显示全部楼层 |阅读模式
1金钱
各位大神帮忙过来看看,我设置DAC输出为0-4095,结果用ADC测试一直在1.99V-2.3V直接变化,既达不到0V,也达不到3.3V,都是按照教程来设置的,为啥呢,
DAC.png

最佳答案

查看完整内容[请看2#楼]

问题解决了,也不知道是咋回事,换了一块板子就搞好了,一毛一样的程序,应该是原来那块板子做工有问题吧
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

9

主题

57

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2017-1-6
在线时间
32 小时
 楼主| 发表于 2017-3-7 21:33:06 | 显示全部楼层
问题解决了,也不知道是咋回事,换了一块板子就搞好了,一毛一样的程序,应该是原来那块板子做工有问题吧
回复

使用道具 举报

22

主题

751

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1605
金钱
1605
注册时间
2015-6-10
在线时间
222 小时
发表于 2017-3-8 08:41:02 | 显示全部楼层
没开缓冲器吧
回复

使用道具 举报

4

主题

290

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1130
金钱
1130
注册时间
2015-8-4
在线时间
107 小时
发表于 2017-3-8 09:03:05 | 显示全部楼层
DAC_SetChannel1Data(),这里不是应该是Channel2吗
回复

使用道具 举报

9

主题

57

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2017-1-6
在线时间
32 小时
 楼主| 发表于 2017-3-8 09:37:02 | 显示全部楼层

教程要求要关闭缓冲器啊
回复

使用道具 举报

9

主题

57

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2017-1-6
在线时间
32 小时
 楼主| 发表于 2017-3-8 09:37:59 | 显示全部楼层
kingnike 发表于 2017-3-8 09:03
DAC_SetChannel1Data(),这里不是应该是Channel2吗

以前统一都是Channel1,测试就是不成功的
回复

使用道具 举报

4

主题

290

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1130
金钱
1130
注册时间
2015-8-4
在线时间
107 小时
发表于 2017-3-8 10:57:07 | 显示全部楼层
[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上面的代码,你对比看下吧。
活到老,学到老。
回复

使用道具 举报

4

主题

290

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1130
金钱
1130
注册时间
2015-8-4
在线时间
107 小时
发表于 2017-3-8 10:57:13 | 显示全部楼层
提交多了一次。删除
活到老,学到老。
回复

使用道具 举报

9

主题

57

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2017-1-6
在线时间
32 小时
 楼主| 发表于 2017-3-8 14:11:05 | 显示全部楼层
kingnike 发表于 2017-3-8 10:57
[mw_shl_code=applescript,true]void dac_init(void)
{
        /* Init Structure definition */

好的,谢谢了
回复

使用道具 举报

28

主题

171

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
437
金钱
437
注册时间
2017-2-13
在线时间
110 小时
发表于 2017-3-14 16:31:47 | 显示全部楼层

缓冲器在哪设置
回复

使用道具 举报

22

主题

751

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1605
金钱
1605
注册时间
2015-6-10
在线时间
222 小时
发表于 2017-3-15 08:17:30 | 显示全部楼层

DAC_OutputBuffer
回复

使用道具 举报

28

主题

171

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
437
金钱
437
注册时间
2017-2-13
在线时间
110 小时
发表于 2017-3-15 08:50:34 | 显示全部楼层

非常感谢,我设置里输出缓存,基本解决问题了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-17 02:10

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表