Tom952331 发表于 2025-8-16 16:44

APM32F407IGT6 DAC初始化卡住了

先上代码:

int main(void)
{
   
                GPIO_Config_T GPIO_ConfigStruct;
   
                RCM_EnableAHB1PeriphClock(RCM_AHB1_PERIPH_GPIOB);


                GPIO_ConfigStruct.pin = GPIO_PIN_3;
    GPIO_ConfigStruct.mode = GPIO_MODE_OUT;
   
    GPIO_ConfigStruct.speed = GPIO_SPEED_50MHz;
    GPIO_Config(GPIOB, &GPIO_ConfigStruct);
   

    /* DAC init*/
    DAC_Init();

   

    while (1)
    {
                        GPIO_SetBit(GPIOB,GPIO_PIN_3);
                        for(i=0;i<100000;i++);
                        GPIO_ResetBit(GPIOB,GPIO_PIN_3);
                        for(i=0;i<100000;i++);
    }
}

void DAC_Init()
{
    GPIO_Config_T   gpioConfig;
    DAC_Config_T    dacConfig;

    /* Enable GPIOA clock */
    RCM_EnableAHB1PeriphClock(RCM_AHB1_PERIPH_GPIOA);

    /* DAC out PA4 pin configuration */
    GPIO_ConfigStructInit(&gpioConfig);
    gpioConfig.mode    = GPIO_MODE_AN;
    gpioConfig.pupd    = GPIO_PUPD_NOPULL;
    gpioConfig.pin   = GPIO_PIN_4;
    GPIO_Config(GPIOA, &gpioConfig);

    /* Enable DAC clock */
        //RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC, ENABLE);
    RCM_EnableAPB1PeriphClock(RCM_APB1_PERIPH_DAC);

//    /* DAC channel 1 configuration */
//    DAC_ConfigStructInit(&dacConfig);
//    dacConfig.trigger             = DAC_TRIGGER_NONE;
//    dacConfig.waveGeneration      = DAC_WAVE_GENERATION_NONE;
//    dacConfig.maskAmplitudeSelect = DAC_LFSR_MASK_BIT11_1;
//    dacConfig.outputBuffer      = DAC_OUTPUT_BUFFER_ENABLE;
//    DAC_Config(DAC_CHANNEL_1, &dacConfig);

//    /* Enable DAC channel 1 */
//    DAC_Enable(DAC_CHANNEL_1);
}卡在这句:RCM_EnableAPB1PeriphClock(RCM_APB1_PERIPH_DAC);
我找到RCM_APB1_PERIPH_DAC的定义

#if defined (APM32F405xx) || defined (APM32F407xx) || defined (APM32F415xx) || defined (APM32F417xx) || defined (APM32F425xx) || defined (APM32F427xx)
    RCM_APB1_PERIPH_DAC    = BIT29,             /*!< Select DAC clock */
#endif

APM32F407xx没定义
我自己定义了一个
#define APM32F407xx 1
可是还是卡住,把这句注释掉,灯就可以闪。
请问高手,如何解决?谢谢

SpiritSong 发表于 2025-9-14 20:14

APM32F407xx 这个定义是全局的。
如果编译的时候没有定义,系统会提示,并暂停编译。

懒癌晚期患者 发表于 2025-10-1 17:04

你已经尝试了定义APM32F407xx,这是正确的第一步
页: [1]
查看完整版本: APM32F407IGT6 DAC初始化卡住了