打印

关于STM32F103RET DAC 问题

[复制链接]
4249|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xduct|  楼主 | 2011-10-10 17:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
DAC 配置具体如下
void DAC_Configuration(void)
{
DAC_InitTypeDef DAC_InitStructure;
GPIO_InitTypeDef GPIO_InitStructure;

/* DAC Periph clock enable */
  RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC, ENABLE);
/* Configure DAC_CH1,DAC_CH2 output pin */
  GPIO_InitStructure.GPIO_Pin =  GPIO_PIN_DAC1 | GPIO_PIN_DAC2;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
//  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;      
  GPIO_Init(GPIOA, &GPIO_InitStructure);
/* DAC channel1 Configuration */
  DAC_InitStructure.DAC_Trigger = DAC_Trigger_Software;
  DAC_InitStructure.DAC_WaveGeneration = DAC_WaveGeneration_None;
DAC_InitStructure.DAC_LFSRUnmask_TriangleAmplitude =DAC_TriangleAmplitude_4095;
  DAC_InitStructure.DAC_OutputBuffer = DAC_OutputBuffer_Enable;
  DAC_Init(DAC_Channel_1, &DAC_InitStructure);
/* DAC channel2 Configuration */
DAC_InitStructure.DAC_Trigger = DAC_Trigger_Software;
  DAC_InitStructure.DAC_WaveGeneration = DAC_WaveGeneration_None;
DAC_InitStructure.DAC_LFSRUnmask_TriangleAmplitude =DAC_TriangleAmplitude_4095;
  DAC_InitStructure.DAC_OutputBuffer = DAC_OutputBuffer_Enable;
  DAC_Init(DAC_Channel_2, &DAC_InitStructure);
DAC_Cmd(DAC_Channel_1, ENABLE);
DAC_Cmd(DAC_Channel_2, ENABLE);
// DAC_SetDualChannelData(DAC_Align_12b_R, 375, 375);
// DAC_DualSoftwareTriggerCmd(ENABLE);
}


问题:
1,管脚应该配置成GPIO_Mode_Out_PP;还是GPIO_Mode_AIN;  
     两种配置都试过,DAC都可以正常运行。
2, DAC_SetDualChannelData(DAC_Align_12b_R, 0, 0);
      DAC_DualSoftwareTriggerCmd(ENABLE);
     这样管脚输出是不是应该为0,但是我这边两个管脚都有65MV的电压(管脚后级都断开的情况下)。
沙发
香水城| | 2011-10-10 17:31 | 只看该作者
1)应该使用GPIO_Mode_AIN。

2)开启内部Buffer时,DAC输出不是轨到轨的,数据手册上有具体参数。

使用特权

评论回复
板凳
xduct|  楼主 | 2011-10-10 17:38 | 只看该作者
香主:
也就是说应该配置成
DAC_InitStructure.DAC_OutputBuffer = DAC_OutputBuffer_Disable;
这样输出就会变成0了对吗,
我试试去

使用特权

评论回复
地板
xduct|  楼主 | 2011-10-10 18:01 | 只看该作者
谢谢香主,问题正如你说的那样,关闭内部Buffer后,输出正常了。结贴

使用特权

评论回复
5
hsbjb| | 2011-10-10 19:02 | 只看该作者
香主解决问题总是能找到关键

使用特权

评论回复
6
香水城| | 2011-10-11 11:02 | 只看该作者
谢谢香主,问题正如你说的那样,关闭内部Buffer后,输出正常了。结贴
xduct 发表于 2011-10-10 18:01


你的问题解决了,但是我没有得到奖励分呢,:'(

使用特权

评论回复
7
yinyangdianzi| | 2011-10-12 09:32 | 只看该作者
给分。。。。不给绑架LZ

使用特权

评论回复
8
xduct|  楼主 | 2011-10-12 18:14 | 只看该作者
发帖的时候是0分,现在怎么弄才能给分呢,哈哈

使用特权

评论回复
9
xduct|  楼主 | 2011-10-12 18:16 | 只看该作者
新的问题又出来了,之前开内部buffer时,输出是对的,计算输出300mv,最后实际测量即为300mv,但是关闭内部buffer后,0输出时没问题了,但是计算输出300mv,实际测量输出只有270mv,不知何故。

使用特权

评论回复
10
香水城| | 2011-10-12 18:23 | 只看该作者
新的问题又出来了,之前开内部buffer时,输出是对的,计算输出300mv,最后实际测量即为300mv,但是关闭内部buffer后,0输出时没问题了,但是计算输出300mv,实际测量输出只有270mv,不知何故。 ...
xduct 发表于 2011-10-12 18:16


可能你的负载太重了。查查数据手册,看看匹配参数。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

44

帖子

0

粉丝