




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
这个是自己调试成功的代码,希望给大家带来方便//=========AD9834.h======================///*------------------------------------------------------------------------------------
***********************AD9834驱动程序********************************
***********************STM32固件函数库V2.0*************************
***********************2011.3.29****************************************
------------------------------------------------------------------------------------*/#ifndef__AD9834_H
#define__AD9834_H#include"stm32f10x_lib.h"#defineTriangle_Wave
0x2002
#defineSine_Wave
0x2028/*AD9834晶振频率*/
#defineAD9834_SYSTEM_COLCK
50000000UL/*AD9834控制引脚*/
#defineAD9834_Control_Port
GPIOC
#defineAD9834_FSYNC
GPIO_Pin_6
#defineAD9834_SCLK
GPIO_Pin_7
#defineAD9834_SDATA
GPIO_Pin_8
#defineAD9834_RESET
GPIO_Pin_9#defineAD9834_FSYNC_SET
GPIO_SetBits(AD9834_Control_Port,AD9834_FSYNC)
#defineAD9834_FSYNC_CLR
GPIO_ResetBits(AD9834_Control_Port,AD9834_FSYNC)
#defineAD9834_SCLK_SET
GPIO_SetBits(AD9834_Control_Port,AD9834_SCLK)
#defineAD9834_SCLK_CLR
GPIO_ResetBits(AD9834_Control_Port,AD9834_SCLK)
#defineAD9834_SDATA_SET
GPIO_SetBits(AD9834_Control_Port,AD9834_SDATA)
#defineAD9834_SDATA_CLR
GPIO_ResetBits(AD9834_Control_Port,AD9834_SDATA)
#defineAD9834_RESET_SET
GPIO_SetBits(AD9834_Control_Port,AD9834_RESET)
#defineAD9834_RESET_CLR
GPIO_ResetBits(AD9834_Control_Port,AD9834_RESET)
#defineFREQ_0
0
#defineFREQ_1
1
#defineDB15
0
#defineDB14
0
#defineDB13
B28
#defineDB12
HLB
#defineDB11
FSEL
#defineDB10
PSEL
#defineDB9
PIN_SW
#defineDB8
RESET
#defineDB7
SLEEP1
#defineDB6
SLEEP12
#defineDB5
OPBITEN
#defineDB4
SIGN_PIB
#defineDB3
DIV2
#defineDB2
0
#defineDB1
MODE
#defineDB0
0#defineCONTROL_REGISTER
(DB15<<15)|(DB14<<14)|(DB13<<13)|(DB12<<12)|(DB11<<11)|(DB10<<10)\
|(DB9<<9)|(DB8<<8)|(DB7<<7)|(DB6<<6)|(DB5<<5)|(DB4<<4)|(DB3<<3)|(DB2<<2)|(DB1<<1)|(DB0<<0)/*AD9834函数声明*/
externvoidAD9834_Write_16Bits(unsignedintdata);
//写一个字到AD9834
externvoidAD9834_Select_Wave(unsignedintinitdata);//选择输出波形
externvoidInit_AD9834();//初始化配置
externvoidAD9834_Set_Freq(unsignedcharfreq_number,unsignedlongfreq);//选择输出寄存器和输出频率值#endif/*AD9834_H*///================================================================////====================AD9834.c======================//#include"stm32f10x_lib.h"
#include"AD9834.h"
/****************************************************************
函数名称:AD9834_Write_16Bits
功
能:向AD9834写入16为数据
参
数:data--
要写入的16位数据
返回值
:无
*****************************************************************/
voidAD9834_Write_16Bits(unsignedintdata)
{
unsignedchari=0;
AD9834_SCLK_SET;
AD9834_FSYNC_CLR;
for(i=0;i<16;i++)
{
if(data&0x8000)
AD9834_SDATA_SET;
else
AD9834_SDATA_CLR;
AD9834_SCLK_CLR;
data<<=1;
AD9834_SCLK_SET;
}
AD9834_FSYNC_SET;
}/***********************************************************************************
函数名称:AD9834_Select_Wave
功
能:软件为控制,
--------------------------------------------------
IOUT正弦波,SIGNBITOUT方波,写FREQREG0,写PHASE0
ad9834_write_16bit(0x2028)
一次性写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--要输入的命令
返回值
:无
************************************************************************************/
voidAD9834_Select_Wave(unsignedintinitdata)
{
AD9834_FSYNC_SET;
AD9834_SCLK_SET;
AD9834_RESET_SET;
AD9834_RESET_SET;
AD9834_RESET_CLR;
AD9834_Write_16Bits(initdata);
}/****************************************************************
函数名称:Init_AD9834
功
能:初始化AD9834控制引脚
参
数:无
返回值
:无
*****************************************************************/
voidInit_AD9834()
{
GPIO_InitTypeDefGPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin=AD9834_FSYNC|AD9834_SCLK|AD9834_SDATA|AD9834_RESET;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_Init(AD9834_Control_Port,&GPIO_InitStructure);
}/****************************************************************
函数名称:AD9834_Set_Freq
功
能:设置频率值
参
数:freq_number--要写入的平率寄存器(FREQ_0或FREQ_1)
freq--频率值(Freq_value(value)=Freq_data(data)*FCLK/2^28)
返回值
:无
*****************************************************************/
voidAD9834_Set_Freq(unsignedcharfreq_number,unsignedlongfreq)
{
unsignedlongFREQREG=(unsignedlong)(268435456.0/AD9834_SYSTEM_COLCK*freq);
unsignedintFREQREG_LSB_14BIT=(unsignedint)FREQREG;
unsignedintFREQREG_MSB_14BIT=(unsignedint)(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
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 地产集团出差管理制度
- 大学煤炭采购管理制度
- 学生露天用餐管理制度
- 家具员工奖励管理制度
- 学校人事安全管理制度
- 地下管理安全管理制度
- 客户隐私保护管理制度
- 央企建筑公司管理制度
- 娱乐公司宿舍管理制度
- 学校教学流程管理制度
- 铁总建设201857号 中国铁路总公司 关于做好高速铁路开通达标评定工作的通知
- 麻醉科PDCA持续改进麻醉术后镇痛
- 债权转让合同纠纷民事起诉状
- 久坐危害及预防
- 感悟亲情亲情类作文指导
- 四川康美泰卫生用品有限公司生态康护用品研发及产业化项目环境影响报告
- 机床数控技术PPT完整全套教学课件
- 2023-2025年初中学业水平考试体育与健康考试体育中考理论考试题库
- Photoshop图像处理模拟试题2023
- NB-T 10316-2019 风电场动态无功补偿装置并网性能测试规范
- GB/T 29602-2013固体饮料
评论
0/150
提交评论