资源简介
网上资源,包括官方提供的驱动函数都为IO口模拟spi通信,该驱动代码以STM32F4为mcu,使用HAL库函数,实现真正的spi通信,包括.c和.h函数。且频率修改函数易用,只需修改入口参数即可修改频率。

代码片段和文件信息
#include “AD9834.h“
//////////////////////////////////////////////////////////////////////////////////
//本程序只供学习使用,未经作者许可,不得用于其它任何用途
//AD9834驱动代码
//作者:洁座
//创建日期:2019/10/16
//版本:V1.0
//版权所有,盗版必究。
//////////////////////////////////////////////////////////////////////////////////
/****************************************************************
函数名称: AD9834_Write_16Bits
功 能: 向AD9834写入16为数据
参 数: data -- 要写入的16位数据
返回值 : 无
*****************************************************************/
void AD9834_Write_16Bits(unsigned int data)
{
unsigned int temp;
temp=data&0x00ff;
data>>=8;
AD9834_FSYNC_CLR ;
SPI5_ReadWriteByte(data);
SPI5_ReadWriteByte(temp);
AD9834_FSYNC_SET ;
}
/***********************************************************************************
函数名称:AD9834_Select_Wave
功 能:软件为控制,
--------------------------------------------------
IOUT正弦波 ,SIGNBITOUT方波 ,写FREQREG0 ,写PHASE0
ad9834_write_16bit(0x2038) 一次性写FREQREG0
ad9834_write_16bit(0x0038) 单独改写FREQREG0的LSB
ad9834_write_16bit(0x1038) 单独改写FREQREG0的MSB
--------------------------------------------------
IOUT三角波 ,写PHASE0
ad9834_write_16bit(0x2002) 一次性写FREQREG0
ad9834_write_16bit(0x0002) 单独改写FREQREG0的LSB
ad9834_write_16bit(0x1008) 单独改写FREQREG0的MSB
参 数:initdata -- 要输入的命令
返回值 :无
************************************************************************************/
void AD9834_Select_Wave(unsigned int initdata)
{
AD9834_Write_16Bits(initdata);
}
/****************************************************************
函数名称: Init_AD9834
功 能: 初始化AD9834控制引脚
参 数: 无
返回值 : 无
*****************************************************************/
void Init_AD9834()
{
SPI5_Init();
AD9834_Write_16Bits(AD9834_RESET_SET);
}
/****************************************************************
函数名称: AD9834_Set_Freq
功 能: 设置频率值
参 数: freq_number -- 要写入的平率寄存器
freq -- 频率值 (Freq_value(value)=Freq_data(data)*FCLK/2^28)
返回值 : 无
*****************************************************************/
void AD9834_Set_Freq(unsigned char freq_number unsigned long freq)
{
unsigned long FREQREG = (unsigned long)(268435456.0/AD9834_SYSTEM_COLCK*freq);
unsigned int FREQREG_LSB_14BIT = (unsigned int)FREQREG;
unsigned int FREQREG_MSB_14BIT = (unsigned int)(FREQREG>>14);
if(freq_number == FREQ_0)
{
FREQREG_LSB_14BIT &= ~(1U<<15);
FREQREG_LSB_14BIT |= 1<<14;
FREQREG_MSB_14BIT &= ~(1U<<15);
FREQREG_MSB_14BIT |= 1<<14;
}
else
{
FREQREG_LSB_14BIT &= ~(1<<14);
FREQREG_LSB_14BIT |= 1U<<15;
FREQREG_MSB_14BIT &= ~(1<<14);
FREQREG_MSB_14BIT |= 1U<<15;
}
AD9834_Write_16Bits(FREQREG_LSB_14BIT);
AD9834_Write_16Bits(FREQREG_MSB_14BIT);
AD9834_Write_16Bits(AD9834_RESET_CLR);
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2019-10-16 08:58 AD9834驱动代码\
目录 0 2019-10-14 16:32 AD9834驱动代码\HARDWARE\
目录 0 2019-10-15 15:19 AD9834驱动代码\HARDWARE\AD9834\
文件 3162 2019-10-16 09:03 AD9834驱动代码\HARDWARE\AD9834\AD9834.c
文件 1443 2019-10-16 09:05 AD9834驱动代码\HARDWARE\AD9834\AD9834.h
目录 0 2019-10-14 14:27 AD9834驱动代码\HARDWARE\LED\
文件 587 2019-10-16 08:59 AD9834驱动代码\HARDWARE\LED\led.c
文件 151 2019-10-16 08:59 AD9834驱动代码\HARDWARE\LED\led.h
目录 0 2019-10-15 11:20 AD9834驱动代码\HARDWARE\SPI\
文件 3125 2019-10-16 08:59 AD9834驱动代码\HARDWARE\SPI\spi.c
文件 222 2019-10-16 09:00 AD9834驱动代码\HARDWARE\SPI\spi.h
相关资源
- labview语音输入输出
- IMX385驱动代码.zip
- proteus仿真 AT89C51输出各种波形
- [免费]基于stm32f103ze 的OLED驱动代码
- 直接将麦克风的声音直接输出到音箱
- 可输出多路电压的( -5v -12v)直流稳
- 这是一个字模提取软件,其中可是设
- 汇编编程实现二进制和十六进制之间
- CAN Linux驱动代码
- 基于labVIEW的虚拟数据采集与输出仿真
- plc模拟量输入输出转换
- S32K144使用printf格式化输出
- 基于DSP 56F801的正弦波输出DC/AC电源
- 新的单路电气隔离栅极驱动器具有独
- DO-WHILE循环语句的翻译程序设计简单优
- ds2781单总线1-wire驱动代码 1
- 高手教你如何计算逆变器输出滤波电
- 深入了解开关调节器的输出纹波和开
- 电流模拟量0~20mA输出典型电路计算书
- HP现场照片输出方案
- 并联型有源电力滤波器输出电感选择
- VMOS管理结构及输出特性曲线电路图
- VMOS管输出级电路图
- 输出本安型准谐振反激DC-DC变换器设计
- 易语言GDI设置输出前景色源码
- 易语言GDI输出文字背景透明源码
- 以单片机AT89S52、光电脉宽调制器芯片
- STM32F103系列PWM输出应用之纸短情长音
- FFmpeg 采集摄像头输出rtmp直播流媒体,
- FOR循环语句的翻译程序设计简单优先
评论
共有 条评论