AD9833 Контроль частоты с использованием STM32F030F4P6 - PullRequest
0 голосов
/ 30 сентября 2018

Я использую STM32F030F4P6 и Stm32Cube для запуска генератора сигналов AD9833.я могу генерировать сигналы. но не могу изменить частоту. в примечании к приложению Analog Devices есть пример:

Example

В этом примере я пишу код, подобный следующему:

void AD9833_SetFRQ(float FRQ) {
    uint32_t freq=0;
    uint32_t freq0=0;
    uint32_t freq1=0;

    freq=(int)(((FRQ*pow(2,28))/FMCLK)+1); // Tuning Word
    freq0=(freq&0x3fff)|(1<<14);  // FREQ LSB
    freq1=(freq>>14)|(1<<14);     // FREQ MSB

    AD9833_Reset();

    HAL_GPIO_WritePin(GPIOB,GPIO_PIN_1,GPIO_PIN_RESET);
    HAL_SPI_Transmit(&hspi1,(uint8_t*)&(freq0),1,10);
    HAL_GPIO_WritePin(GPIOB,GPIO_PIN_1,GPIO_PIN_SET);

    HAL_GPIO_WritePin(GPIOB,GPIO_PIN_1,GPIO_PIN_RESET);
    HAL_SPI_Transmit(&hspi1,(uint8_t*)&(freq1),1,10);
    HAL_GPIO_WritePin(GPIOB,GPIO_PIN_1,GPIO_PIN_SET);

    HAL_GPIO_WritePin(GPIOB,GPIO_PIN_1,GPIO_PIN_RESET);
    HAL_SPI_Transmit(&hspi1,(uint8_t*)&(A1),1,10);
    HAL_GPIO_WritePin(GPIOB,GPIO_PIN_1,GPIO_PIN_SET);

    AD9833_Set();
}

и мои данные выводятся точно так же, как пример аналоговых устройств, как вы можете видеть на изображении логического анализатора:

Logic1

Logic2

По-прежнему нет возможности изменить частоту. :( в чем проблема?

...