打印

急!!!使用开发板 做DAC电压输出,在PA4口测量始终为参考电压(3.26V)

[复制链接]
465|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
スモモ|  楼主 | 2018-7-4 08:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include "dac.h"
#include "stm32f10x.h"

void DAC_CH_CONFIG()
{
        GPIO_InitTypeDef GPIO_InitStructure;
        DAC_InitTypeDef DAC_InitStructure;

        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE );
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC, ENABLE );
        
        GPIO_InitStructure.GPIO_Pin=GPIO_Pin_4;
        GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AIN;
        GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
        GPIO_Init(GPIOA, &GPIO_InitStructure);

    DAC_InitStructure.DAC_Trigger = DAC_Trigger_Software ; //软件触发
        //以下两句的作用为关闭DAC端口的输出三角波形功能以及关闭其输出波形的电压幅值
        DAC_InitStructure.DAC_WaveGeneration = DAC_WaveGeneration_None;
        DAC_InitStructure.DAC_LFSRUnmask_TriangleAmplitude=DAC_LFSRUnmask_Bit0;
        //关闭缓存,DAC端口不接负载时可不用缓存
        DAC_InitStructure.DAC_OutputBuffer = DAC_OutputBuffer_Disable;
        
        
        DAC_Init( DAC_Channel_1, &DAC_InitStructure ); //初始化
        DAC_Cmd(DAC_Channel_1, ENABLE); //使能DAC1 通
        

        DAC_SetChannel1Data(DAC_Align_12b_R, 0x0000); //写入初始值0
        DAC_SoftwareTriggerCmd(DAC_Channel_1, ENABLE); ///软件触发转换

}
void DAC_SET()
{
        DAC_SetChannel1Data(DAC_Align_12b_R,1000);
        DAC_SoftwareTriggerCmd(DAC_Channel_1, ENABLE);
}
main 函数:
int main(void)
{
        
        DAC_CH_CONFIG();
        DAC_SET();
    while(1)
        {
        
        }
                  
}

改变DAC_SetChannel1Data(DAC_Align_12b_R,1000); 中的参数值,PA4口输出 不变,用万用表测量的电压始终为3.26V, 按理说参数设置为1000时,端口输出电压应该为0.79V 啊 !
CPU :STM32F103VET6  各位大侠 ,帮忙看下啊,谢谢!

使用特权

评论回复

相关帖子

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

本版积分规则

458

主题

484

帖子

1

粉丝