STM32 F446RE simple DAC output; what am I missing?

Viewed 3367

Trying to get some simple DAC output before moving forward. Have a multimeter on the output A2 but this seems to never change from about 1V6 for whatever value I put into the DAC2 output function.

    #include "stm32f4xx.h"
    #include "stm32f4xx_dac.h"

    void io_config(void)
    {
    GPIO_InitTypeDef GPIO_InitStructure;

    /* DMA1 & DMA2 clock and GPIOA & GPIOC clock enable */
    RCC_AHB1PeriphClockCmd( /*RCC_AHB1Periph_DMA1 | RCC_AHB1Periph_DMA2 |*/
            RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_GPIOB, ENABLE);

    /* DAC Periph clock, TIM2 clock enable */
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC | RCC_APB1Periph_TIM2, ENABLE);

    /* ADC1 Periph Clock enable */
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE);

    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AN;
    GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
    GPIO_Init(GPIOA, &GPIO_InitStructure);
    }

    DAC_InitTypeDef dac_init_s;

    int main(void)
    {
    unsigned int i, adcr;
    i = adcr = 0;

    io_config ();

    DAC_StructInit(&dac_init_s);
    //dac_init_s.DAC_OutputBuffer = DAC_OutputBuffer_Disable;
    DAC_Init(DAC_Channel_2, &dac_init_s);

    while(1) {


        DAC_SetChannel2Data(DAC_Align_12b_R,500);
    }
}
2 Answers
Related