OpenEdv-开源电子网

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

关于STM32 DAC输出可调电压的问题

[复制链接]

1

主题

2

帖子

0

精华

新手入门

积分
26
金钱
26
注册时间
2013-10-14
在线时间
0 小时
发表于 2013-10-14 10:38:39 | 显示全部楼层 |阅读模式
我想STM32 DAC对外输出电压,电压的值根据不同情况设定不同的值,现在我发现在调用库函数DAC_SoftwareTriggerCmd(DAC_Channel_1,ENABLE);在一个while循环里面,即使DAC_SetChannel1Data(DAC_Align_12b_R,vol);中vol值是固定的,DOR的数据值也会随着SWTRIG的ENABLE而值递增,最大3.3v,在0v-3.3v循环。如果不将DAC_SoftwareTriggerCmd(DAC_Channel_1,ENABLE);放入while中,即只ENABLE一次,可输出固定的值,但是目的是要一个可调的而不是固定的电压值,请高手帮忙!

程序如下:

void DAC_Configuration(void)
{
         
         DAC_InitTypeDef DAC_InitStruct;
         
        GPIO_InitTypeDef GPIO_InitStructure;
         
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC, ENABLE);
         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
         
        
        /* Configure DAC channe1 outputs pins */
         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;    
         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
         GPIO_Init(GPIOA, &GPIO_InitStructure);
        DAC_InitStruct.DAC_Trigger=DAC_Trigger_Software;                                
         DAC_InitStruct.DAC_WaveGeneration=DAC_WaveGeneration_None;                        
         DAC_InitStruct.DAC_OutputBuffer=DAC_OutputBuffer_Disable;                               
        DAC_Init(DAC_Channel_1,&DAC_InitStruct);
       
        DAC_Cmd(DAC_Channel_1, ENABLE);
                                                                                                    
}

main()
{
     DAC_Configuration(); 
    while(1)
    {
        DAC_SetChannel1Data(DAC_Align_12b_R,0X0D93);  
DAC_SoftwareTriggerCmd(DAC_Channel_1,ENABLE);  
    }


}


结果输出电压值递增而不固定


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

38

主题

2061

帖子

6

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3273
金钱
3273
注册时间
2012-1-16
在线时间
37 小时
发表于 2013-10-14 11:16:01 | 显示全部楼层
你设置电压输出的时候先关闭下试试。DAC_Cmd(DAC_Channel_1, DISABLE); DAC_SetChannel1Data(DAC_Align_12b_R,0X0D93);  DAC_Cmd(DAC_Channel_1, ENABLE);
站在巨人的肩膀上不断的前进。。。
回复 支持 反对

使用道具 举报

1

主题

2

帖子

0

精华

新手入门

积分
26
金钱
26
注册时间
2013-10-14
在线时间
0 小时
 楼主| 发表于 2013-10-14 11:31:06 | 显示全部楼层
回复【2楼】xiaoyan:
---------------------------------
设置了,还是不行,我发现只要SWTRIG置1,DOR的值就会递增,前提是SWTRIG置1循环执行。why??
回复 支持 反对

使用道具 举报

19

主题

199

帖子

0

精华

高级会员

Rank: 4

积分
513
金钱
513
注册时间
2012-11-18
在线时间
72 小时
发表于 2013-10-14 14:31:52 | 显示全部楼层
            


加个放大器,0-15V模拟电压可调.

回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-11 03:02

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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