资源简介
网上资源,包括官方提供的驱动函数都为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
相关资源
- 简单选择排序,输出每趟结果
- STM32 多通道 不同频率 可变频 pwm输出
- 超像素分割软件可调整分割输出数目
- AD9834按键控制输出正弦波、三角波、
- 编程实现算术编码 输入任意字串 输出
- 74HC595级联输出原理图+程序+仿真prot
- DSP中用查表法通过拨码开关实现不同
- 使用bat脚本实现这个功能获取当前路
- TMS320F28069液晶显示可调频率PWM输出
- 从键盘上接受一个小写字母,将它变
- 多输出5V/12V/3.3V开关稳压电源
- 北邮 专业实验 设计电路并输出到模拟
- 编一个程序,定义结构类型有学号、
- 虚拟磁盘MINIPORT驱动代码
- RT1052 QSPI 驱动代码
- PWM输出隔离的4~20MA电路
- VHDL四种频率输出的频率计报告
- 输入输出系统 接口实验报告
- FPGA控制VGA输出实现乒乓球游戏_veril
- spiflash 驱动代码
- ADXL345直接输出角度值C51程序
- 点击图像上任意一点,即可输出该点
- 基于STM8的温湿度传感器DHT11驱动代码
- 有一个共N个字符的字符串,存放在
- 虚拟声卡驱动代码
- stm32 高级定时器1的互补输出死区设置
- Win32标准输出重定向VS2015通用实现
- 多路输出直流稳压电源的设计
- STM32定时器输出带有死区时间的PWM波形
- envi制图输出步骤
评论
共有 条评论