野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 12458|回复: 1

DMA,DAC固定输出始终为0???

[复制链接]
发表于 2016-4-13 21:18:25 | 显示全部楼层 |阅读模式
大家好,我用DMA,DAC输出固定电压,可是始终为0,不知道为什么?先上代码把
#include "bsp_dac.h"

#define DAC_DHR12RD_Address      0x40007420 //0x40007420


const uint16_t Sine12bit = 3000;
uint32_t DualSine12bit;


static void DAC_Config(void)
{
  GPIO_InitTypeDef GPIO_InitStructure;
        DAC_InitTypeDef  DAC_InitStructure;

  /* ê1ÄüGPIOAê±Öó */
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);       
       
        /* ê1ÄüDACê±Öó */       
  RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC, ENABLE);
       
  /* DACμÄGPIOÅäÖã¬Ä£Äaêäèë */
  GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_4 | GPIO_Pin_5;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
  GPIO_Init(GPIOA, &GPIO_InitStructure);
       


  DAC_InitStructure.DAC_Trigger = DAC_Trigger_Software; //èí¼t′¥·¢1|Äü
        DAC_InitStructure.DAC_WaveGeneration = DAC_WaveGeneration_None;        //2»ê1óÃ2¨Dη¢éúÆ÷
  DAC_InitStructure.DAC_OutputBuffer = DAC_OutputBuffer_Disable;        //2»ê1óÃDACêä3ö»o3å
  DAC_Init(DAC_Channel_1, &DAC_InitStructure);

  // ÅäÖÃDAC í¨μà1£¬2
  DAC_Init(DAC_Channel_1, &DAC_InitStructure);
        DAC_Init(DAC_Channel_2, &DAC_InitStructure);

  /* ê1Äüí¨μà1 óéPA4êä3ö ê1Äüí¨μà2 óéPA5êä3ö */
  DAC_Cmd(DAC_Channel_1, ENABLE);
  DAC_Cmd(DAC_Channel_2, ENABLE);
       
  /* ê1ÄüDACμÄDMAÇëÇó */
DAC_DMACmd(DAC_Channel_2, ENABLE);
}

/**
  * @brief  ÅäÖÃDMA
  * @param  ÎT
  * @retval ÎT
  */
static void DAC_DMA_Config(void)
{       
        DMA_InitTypeDef  DMA_InitStructure;

        /* ê1ÄüDMA2ê±Öó */
        RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA2, ENABLE);
       
        /* ÅäÖÃDMA2 */
  DMA_InitStructure.DMA_PeripheralBaseAddr = DAC_DHR12RD_Address;                                        //íaéèêy¾YμØÖ·
  DMA_InitStructure.DMA_MemoryBaseAddr = (uint32_t)&DualSine12bit ;                                //Äú′æêy¾YμØÖ· DualSine12bit
  DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralDST;                                                                                        //êy¾Y′«êä·½ÏòÄú′æÖáíaéè
  DMA_InitStructure.DMA_BufferSize = 1;                                                                                                                                        //»o′æ′óD¡Îa1×Ö½ú       
  DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;                                //íaéèêy¾YμØÖ·1춨       
  DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Disable;                                                                        //Äú′æêy¾YμØÖ·1춨
  DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Word;        //íaéèêy¾YòÔ×ÖÎaμ¥λ
  DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_Word ;                                        //Äú′æêy¾YòÔ×ÖÎaμ¥λ       
  DMA_InitStructure.DMA_Mode = DMA_Mode_Circular;                                                                                                        //Õy3£Ä£ê½
  DMA_InitStructure.DMA_Priority = DMA_Priority_High;                                                                                        //¸ßDMAí¨μàóÅÏ輶
  DMA_InitStructure.DMA_M2M = DMA_M2M_Disable;                                                                                                                //·ÇÄú′æÖáÄú′æģ꽠      

  DMA_Init(DMA2_Channel4, &DMA_InitStructure);
       
  /* ê1ÄüDMA2-4í¨μà */
  DMA_Cmd(DMA2_Channel4, ENABLE);
}


/**
  * @brief  DAC3õê¼»ˉoˉêy
  * @param  ÎT
  * @retval ÎT
  */
void DAC_Mode_Init(void)
{
        DAC_Config();
        DAC_DMA_Config();
       
        DualSine12bit = (Sine12bit << 16) + (Sine12bit);
       
                DAC_SoftwareTriggerCmd  (DAC_Channel_1,ENABLE);
          DAC_SoftwareTriggerCmd  (DAC_Channel_2,ENABLE);
}
望大家可以帮忙分析一下,哪儿出问题了!
谢谢···



回复

使用道具 举报

发表于 2016-4-14 08:37:23 | 显示全部楼层
代码问题帮顶,BUG还需自己调试。

可参考我们提供DAC的代码。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-15 21:36 , Processed in 0.029635 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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