输出是类似晶振的信号,不是正弦波啊,频率也不对。
#include "sys.h"
#include "delay.h"
#define AD9854_DATA GPIOB->ODR//PB高八位
#define AD9854_ADDR GPIOA->ODR//PA低八位
#define ad9854_reset PCout(0)
#define ad9854_osk PCout(1)//OSK触发信号
#define ad9854_fbh PCout(2)//FSK触发信号
#define ad9854_updata PCout(3)
#define ad9854_wr PCout(4)
#define ad9854_rd PCout(5)
unsigned char ControlRegister[]={0x04,0x00,0x00,0x60}; //AD9854 特殊功能寄存器地址 无倍频,Mode 0
unsigned char FTW[]={0xf1,0xd2,0x4d,0x62,0x10,0x00}; //Frequency Tuning Word1 20M 5KHZ的FTW
unsigned char PAR[]={0x00,0x00}; //Phase Adjust Register 1
unsigned char OSK[]={0x0a,0xff}; //Output shaped keying multiplier, 650mv
void single_wave(unsigned long int fre);
void Init_AD9854(void);
void AD9854_Set_Mode0(void);
void AD9852_Send(unsigned char addr,unsigned char data);
void change_frequency(unsigned long int fre_temp);
void Init_Port(void);
int main( void )
{
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
既然没有读的事,15L你为什么要提?有关吗?
应该是有读,不然怎么写,看:
void GPIO_Write_u8Data(GPIO_TypeDef* GPIOx,u8 PortVal,u8 Low_OR_Hight)
{
u16 Data_Temp;
Data_Temp = GPIO_ReadOutputData(GPIOx);
if(Low_OR_Hight != 1)
{
Data_Temp &= 0xff00; //清零低八位数据
Data_Temp |= PortVal;
}else
{
Data_Temp &= 0x00ff; //清零高八位数据
Data_Temp |= PortVal<<8;
}
GPIO_Write(GPIOx, Data_Temp);
}
/***************************************************************************
* 函数名称: GPIO_ReadOutput_u8Data(GPIO_TypeDef* GPIOx,u8 Low_OR_Hight)
* 函数描述: 八位并行数据读取
* 参数列表: GPIOx:数据口选择
* PortVal:要写的八位数据
* Low_OR_Hight:高低八位的选择?
* 0:低八位 1:高八位
* 返回结果:读到的八位IO口数据
*************************************************************************************/
u8 GPIO_ReadOutput_u8Data(GPIO_TypeDef* GPIOx,u8 Low_OR_Hight)
{
u8 Data_Temp;
if(Low_OR_Hight != 1)
{
Data_Temp = GPIO_ReadOutputData(GPIOx);
Data_Temp &= 0x00ff; //读取低八位数据
}else
{
Data_Temp = (GPIO_ReadOutputData(GPIOx) >> 8);
Data_Temp &= 0xff00; //读取高八位数据
}
return Data_Temp;
}
库函数版
表示已看穿
一周热门 更多>