OpenEdv-开源电子网

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

内存通过DMA传送数据到DAC外设数据寄存器,定时器6触发DAC输出,但是配置上有问题,请大神指点

[复制链接]

1

主题

4

帖子

0

精华

新手入门

积分
15
金钱
15
注册时间
2021-8-24
在线时间
3 小时
发表于 2022-8-4 20:36:13 | 显示全部楼层 |阅读模式
void TIM6_Int_Init(u16 arr,u16 psc)
{
          TIM_TimeBaseInitTypeDef TIM_TimeBaseInitstructure;
         RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM6,ENABLE);
         TIM_TimeBaseInitstructure.TIM_Prescaler = psc;           
         TIM_TimeBaseInitstructure.TIM_Period = arr;                  
         TIM_TimeBaseInitstructure.TIM_CounterMode = TIM_CounterMode_Up;  
         TIM_TimeBaseInitstructure.TIM_ClockDivision = TIM_CKD_DIV1;     
         TIM_TimeBaseInit(TIM6,&TIM_TimeBaseInitstructure);
        TIM_SelectOutputTrigger(TIM6,TIM_TRGOSource_Update);      
                 TIM_Cmd(TIM6,ENABLE);
}
void Dac2_Init(void)
{
        GPIO_InitTypeDef GPIO_InitStructure;
        DAC_InitTypeDef DAC_InitType;

        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE );                   
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC, ENABLE );                      

        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;                                                 
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;                                  
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_Init(GPIOA, &GPIO_InitStructure);
       
        DAC_InitType.DAC_Trigger=DAC_Trigger_T6_TRGO;                               
        DAC_InitType.DAC_WaveGeneration=DAC_WaveGeneration_None;              
        DAC_InitType.DAC_LFSRUnmask_TriangleAmplitude=DAC_LFSRUnmask_Bit0;   
        DAC_InitType.DAC_OutputBuffer=DAC_OutputBuffer_Disable;       
        DAC_Init(DAC_Channel_2,&DAC_InitType);
        DAC_Init(DAC_Channel_2,&DAC_InitType);                                  
        DAC_DMACmd(DAC_Channel_2,ENABLE);
        DAC_SetChannel1Data(DAC_Align_12b_R, 0);                          
}

void DMA_DAC2_Init(void)
{
        DMA_InitTypeDef DMA_InitStructure;
        RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1,ENABLE); // DMA1 ê±Öóê±ê1Äü

        DMA_DeInit(DMA1_Channel2);

        DMA_InitStructure.DMA_MemoryBaseAddr=(uint32_t)SIN_BUF;                 
  DMA_InitStructure.DMA_PeripheralBaseAddr=(uint32_t)&(DAC->DHR12R2);      
        DMA_InitStructure.DMA_DIR=DMA_DIR_PeripheralDST;                        
        DMA_InitStructure.DMA_BufferSize=NUM;                                   
       
        DMA_InitStructure.DMA_PeripheralInc=DMA_PeripheralInc_Disable;         
        DMA_InitStructure.DMA_MemoryInc=DMA_MemoryInc_Enable;                  
       
        DMA_InitStructure.DMA_MemoryDataSize=DMA_PeripheralDataSize_HalfWord;   
        DMA_InitStructure.DMA_MemoryDataSize=DMA_MemoryDataSize_HalfWord;      
       
        DMA_InitStructure.DMA_Mode=DMA_Mode_Circular;                          
        DMA_InitStructure.DMA_Priority=DMA_Priority_High;                        
        DMA_InitStructure.DMA_M2M=DMA_M2M_Disable;                             
       
        DMA_Init(DMA1_Channel2, &DMA_InitStructure);                     
       
        DMA_Cmd(DMA1_Channel2, ENABLE);                                  //
                        
}

void wave_Init(u16 arr,u16 psc)
{
       
        SineWave_Data(SIN_BUF);
  TIM6_Int_Init(arr, psc);
        Dac2_Init();
        DMA_DAC2_Init();
        TIM_Cmd(TIM6,ENABLE);
}

进不了触发 好像,请大神帮忙看看
指导下

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

使用道具 举报

0

主题

114

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2583
金钱
2583
注册时间
2019-10-18
在线时间
414 小时
发表于 2022-8-5 15:47:50 | 显示全部楼层
仔细看下dma2的通道图.dac1的是tim6.而你接的pa5上的是dac2.对应的是dma2的通道4.触发的是tim7.改用定时器7先吧
回复 支持 反对

使用道具 举报

1

主题

4

帖子

0

精华

新手入门

积分
15
金钱
15
注册时间
2021-8-24
在线时间
3 小时
 楼主| 发表于 2022-8-8 15:48:26 | 显示全部楼层
decai 发表于 2022-8-5 15:47
仔细看下dma2的通道图.dac1的是tim6.而你接的pa5上的是dac2.对应的是dma2的通道4.触发的是tim7.改用定时器7 ...

谢谢
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-4-26 18:55

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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