Я использую STM32F030F4P6 и Stm32Cube для запуска генератора сигналов AD9833.я могу генерировать сигналы. но не могу изменить частоту. в примечании к приложению Analog Devices есть пример:
В этом примере я пишу код, подобный следующему:
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();
}
и мои данные выводятся точно так же, как пример аналоговых устройств, как вы можете видеть на изображении логического анализатора:
По-прежнему нет возможности изменить частоту. :( в чем проблема?