野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 20227|回复: 4

一个再简单不过的DAC程序,实在不知道错哪了

[复制链接]
发表于 2014-8-17 21:30:18 | 显示全部楼层 |阅读模式
int main(void)
{
        GPIO_InitTypeDef GPIO_InitStructure;
        DAC_InitTypeDef DAC_InitStructure;
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC,ENABLE);
       
        GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AIN;
        GPIO_InitStructure.GPIO_Pin=GPIO_Pin_4;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_Init(GPIOA,&GPIO_InitStructure);
       
        DAC_InitStructure.DAC_Trigger=DAC_Trigger_Software;
        DAC_InitStructure.DAC_WaveGeneration=DAC_WaveGeneration_None;
        DAC_InitStructure.DAC_OutputBuffer=DAC_OutputBuffer_Disable;
        DAC_Init(DAC_Channel_1,&DAC_InitStructure);
       
        DAC_SetChannel1Data(DAC_Align_12b_R,0x0001);
        DAC_Cmd(DAC_Channel_1,ENABLE);
        DAC_SoftwareTriggerCmd(DAC_Channel_1, ENABLE);
       
        while(1);
}

我就是想输出一个恒定的电压,但无论怎么改程序万用表都是2.3V左右
回复

使用道具 举报

发表于 2014-8-17 22:17:13 | 显示全部楼层
DAC_SetChannel1Data(DAC_Align_12b_R,0x0001);中的0x0001是不是数值太小了~~~最大可以为4095呢~~你修改下数值看看什么效果~~~
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-8-18 12:24:02 | 显示全部楼层
风吹草动 发表于 2014-8-17 22:17
DAC_SetChannel1Data(DAC_Align_12b_R,0x0001);中的0x0001是不是数值太小了~~~最大可以为4095呢~~你修改下 ...

怎么改都是一样的结果
回复 支持 反对

使用道具 举报

发表于 2014-8-18 12:35:38 | 显示全部楼层
woqu 发表于 2014-8-18 12:24
怎么改都是一样的结果

检查板子上dac的引脚是不是共用了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-8-18 13:52:44 | 显示全部楼层
祁羽彤 发表于 2014-8-18 12:35
检查板子上dac的引脚是不是共用了

感谢,终于解决了。mini板上的A4确实是与CS跳帽连接的,断开就正常了,虽然我不知道CS是哪个外设的。
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-24 12:02 , Processed in 0.031391 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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