问题遇到的现象和发生背景
按照CSDN上面的教程在cubemx和keil里面写了9833的代码,代码没有问题,但是下载代码就没有现象
遇到的现象和发生背景,请写出第一个错误信息
代码没有报错
用代码块功能插入代码,请勿粘贴截图。 不用代码块回答率下降 50%
#include "spi.h"
#include "AD9833.h"
void AD9833_GPIOInit(void)
{
CS_9833_1();
}//初始化AD9833相关的GPIO
void AD9833_Write(unsigned short TxData)
{
unsigned char data[2];
data[0]=(unsigned char )((TxData>>8)&0xff);
data[1]=(unsigned char )(TxData&0xff);
CS_9833_0();
HAL_SPI_Transmit(&hspi2,data,2,0x02);
CS_9833_1();
}//向9833发送一个16bit的数 TxData为要发送的数
/*
------------------------------------------------------------------
功能说明:设置AD9833的输出方式
形参:Reset 0为有输出 1为无输出 此位只控制有无输出,不复位寄存器
SleepMode 3关闭内部时钟和ADC 0不关闭
optionbit|modebit 00正弦波 01三角波 10方波 11保留
------------------------------------------------------------------
*/
void AD9833_CtrlSet(unsigned char Reset,unsigned char SleepMode,unsigned char optionbit,unsigned char modebit)
{
unsigned short regtmep=0;
regtmep=regtmep|(((unsigned short )Reset&0x01)<<8);
regtmep=regtmep|((SleepMode&0x03)<<6);
regtmep=regtmep|((optionbit&0x01)<<5);
regtmep=regtmep|((modebit&0x01)<<1);
AD9833_Write(regtmep);
}
/*
------------------------------------------------------------------
功能说明:设置AD9833的输出频率,设置完后暂时不输出
形参: Freq :频率值 0.1hz - 12.5Mhz
如需输出1Mhz,填入1000000
------------------------------------------------------------------
*/
void AD9833_FreqSet(double Freq)
{
int frequence_LSB,frequence_MSB;
double frequence_mid,frequence_DATA;
long int frequence_hex;
//频率换算
frequence_mid=268435456/25;//使用25MHz外部时钟
frequence_DATA=Freq;
frequence_DATA=frequence_DATA/1000000;
frequence_DATA=frequence_DATA*frequence_mid;
frequence_hex=frequence_DATA;//32bit
frequence_LSB=frequence_hex;//频率地位
frequence_LSB=frequence_LSB&0x3fff;//14bit
frequence_MSB=frequence_hex>>14;//频率高位
frequence_MSB=frequence_MSB&0x3fff;//14bit
//使用频率寄存器0输出波形
frequence_LSB=frequence_LSB|0x4000;
frequence_MSB=frequence_MSB|0x4000;
AD9833_Write(0x2100);//选择数据一次写入,复位(无输出)
AD9833_Write(frequence_LSB);//L14,选择频率寄存器0的低14位数据输入
AD9833_Write(frequence_MSB);//M14,频率寄存器·的高14位数据输入
}
```下面是.h文件
#ifndef _AD9833_H_
#define _AD9833_H_
#include "main.h"
#define CS_9833_0() HAL_GPIO_WritePin(GPIOC,GPIO_PIN_1,GPIO_PIN_RESET)
#define CS_9833_1() HAL_GPIO_WritePin(GPIOC,GPIO_PIN_1,GPIO_PIN_SET)
void AD9833_GPIOInit(void);
void AD9833_Write(unsigned short TxData);
void AD9833_CtrlSet(unsigned char Reset,unsigned char SleepMode,unsigned char optionbit,unsigned char modebit);
void AD9833_FreqSet(double Freq);
#endif
```下面是main函数里面的代码
AD9833_GPIOInit();
HAL_Delay(10);
AD9833_FreqSet(1000);//
AD9833_CtrlSet(0,0,1,0); //
运行结果及详细报错内容
代码没有问题,但是没有现象