打印
[STM32F1]

DAC通道没有输出

[复制链接]
2191|21
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
2kenny|  楼主 | 2017-7-28 11:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
DAC, ni, IO, pi, GPIO
本帖最后由 2kenny 于 2017-7-28 11:08 编辑

例程是通道1的输出,我改了一下,改成通道2的输出,可是就一直输出最高电平。

void DAC2_Init(void)
{
        GPIO_InitTypeDef  GPIO_InitStructure;
        DAC_InitTypeDef DAC_InitStructure;
        
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//使能GPIOA时钟
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC, ENABLE);//使能DAC时钟
        
        GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5;//DAC_2
        GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
        GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AIN;//模拟量输入
        GPIO_Init(GPIOA,&GPIO_InitStructure);
        
        DAC_InitStructure.DAC_Trigger=DAC_Trigger_None;        //不使用触发功能 TEN1=0
        DAC_InitStructure.DAC_WaveGeneration=DAC_WaveGeneration_None;//不使用波形发生
        DAC_InitStructure.DAC_LFSRUnmask_TriangleAmplitude=DAC_LFSRUnmask_Bit0;//屏蔽、幅值设置
        DAC_InitStructure.DAC_OutputBuffer=DAC_OutputBuffer_Disable ;        //DAC2输出缓存关闭 BOFF1=1
        DAC_Init(DAC_Channel_2,&DAC_InitStructure);         //初始化DAC通道2
        
        DAC_Cmd(DAC_Channel_2, ENABLE);  //使能DAC通道2
        
        //DAC_SetChannel2Data(DAC_Align_12b_R, 0);  //12位右对齐数据格式设置DAC值
}


        SysTick_Init(72);
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);  //中断优先级分组 分2组
        LED_Init();
        USART1_Init(9600);
        
        DAC2_Init();
               
        while(1)
        {
                i++;
                if(i%20==0)
                {
                        led1=!led1;
                }
  
    DAC_SetChannel2Data(DAC_Align_12b_R,0);        
}

在通道一的时候是有用的,就是把其中的channel1改成了channel2 然后管脚4改成了管脚5
沙发
2kenny|  楼主 | 2017-7-28 11:09 | 只看该作者
大神们快帮帮我,我看了好长时间了

使用特权

评论回复
板凳
feelhyq| | 2017-7-28 12:31 | 只看该作者
2kenny 发表于 2017-7-28 11:09
大神们快帮帮我,我看了好长时间了

为什么DAC 的管脚是 模拟输入呢 还不是XX输出,DAC不是输出电压吗?

使用特权

评论回复
地板
2kenny|  楼主 | 2017-7-28 13:13 | 只看该作者
feelhyq 发表于 2017-7-28 12:31
为什么DAC 的管脚是 模拟输入呢 还不是XX输出,DAC不是输出电压吗?

在使能DAC通道之后,管脚会连到DAC的输出。我觉得就是使能没有起作用,但是使能DAC1时有用的,改成2就没有用了

使用特权

评论回复
5
feelhyq| | 2017-7-28 13:47 | 只看该作者
2kenny 发表于 2017-7-28 13:13
在使能DAC通道之后,管脚会连到DAC的输出。我觉得就是使能没有起作用,但是使能DAC1时有用的,改成2就没 ...

DEBUG的时候 在watch窗口把DAC寄存器都对一遍看看寄存器是不是都配好了

使用特权

评论回复
6
2kenny|  楼主 | 2017-7-28 15:36 | 只看该作者
feelhyq 发表于 2017-7-28 13:47
DEBUG的时候 在watch窗口把DAC寄存器都对一遍看看寄存器是不是都配好了

调试的时候总是报错。。无限循环在一个地方

使用特权

评论回复
7
wahahaheihei| | 2017-7-28 16:30 | 只看该作者
看晕了,这个难道直接把1修改成2运行不起了?

使用特权

评论回复
8
mmuuss586| | 2017-7-28 16:54 | 只看该作者
用的哪个型号的MCU呢

使用特权

评论回复
9
2kenny|  楼主 | 2017-7-28 16:55 | 只看该作者
wahahaheihei 发表于 2017-7-28 16:30
看晕了,这个难道直接把1修改成2运行不起了?

就是把1改成2就  2没有输出了。。。。

使用特权

评论回复
10
2kenny|  楼主 | 2017-7-28 16:56 | 只看该作者
wahahaheihei 发表于 2017-7-28 16:30
看晕了,这个难道直接把1修改成2运行不起了?

就是把1改成2就  2没有输出了。。。。

使用特权

评论回复
11
2kenny|  楼主 | 2017-7-28 16:56 | 只看该作者
mmuuss586 发表于 2017-7-28 16:54
用的哪个型号的MCU呢

stm32 F1

使用特权

评论回复
12
2kenny|  楼主 | 2017-7-28 16:57 | 只看该作者
本帖最后由 2kenny 于 2017-7-28 17:00 编辑
mmuuss586 发表于 2017-7-28 16:54
用的哪个型号的MCU呢

stm32 F1

使用特权

评论回复
13
2kenny|  楼主 | 2017-7-28 17:02 | 只看该作者
wahahaheihei 发表于 2017-7-28 16:30
看晕了,这个难道直接把1修改成2运行不起了?

确切的说一直输出最高电压,并不是没有电压输出。

使用特权

评论回复
14
mmuuss586| | 2017-7-28 17:04 | 只看该作者

刚看了下,你的程序也没问题;
改成通道2,无非是寄存器的地址不一样;

仿真的时候,重新下载程序,选择把FLASH的全部删除看看;

使用特权

评论回复
15
2kenny|  楼主 | 2017-7-28 17:10 | 只看该作者
mmuuss586 发表于 2017-7-28 17:04
刚看了下,你的程序也没问题;
改成通道2,无非是寄存器的地址不一样;

刚刚试过了,烧到板子上,连到DAC0有输出800mV,是我设定的,DAC1还是输出3.4V最高电压

使用特权

评论回复
16
feelhyq| | 2017-7-28 17:17 | 只看该作者
检测下 参考电压管脚是不是正常的

使用特权

评论回复
17
2kenny|  楼主 | 2017-7-28 17:28 | 只看该作者
feelhyq 发表于 2017-7-28 17:17
检测下 参考电压管脚是不是正常的

电压是对的,因为1和2用的是一个参考电压。我刚才想了一下,有可能是2的管脚复用没有调好,我调一下复用

使用特权

评论回复
18
2kenny|  楼主 | 2017-7-28 17:39 | 只看该作者
feelhyq 发表于 2017-7-28 17:17
检测下 参考电压管脚是不是正常的

没有复用,手册上没有写这个

使用特权

评论回复
19
风的向荣| | 2017-7-28 18:24 | 只看该作者
看一下你的GPIO口对应的是哪个通道的ADC,如果你随便换的话对应不上的,肯定没有输出

使用特权

评论回复
20
mmuuss586| | 2017-7-29 09:15 | 只看该作者
2kenny 发表于 2017-7-28 17:10
刚刚试过了,烧到板子上,连到DAC0有输出800mV,是我设定的,DAC1还是输出3.4V最高电压 ...

那就不清楚什么原因了,手上也没有板子测试;

使用特权

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

本版积分规则

1

主题

12

帖子

0

粉丝