资源简介
STM32控制锁相环频综芯片HMC704的程序,注释详细,初始化生成一个频率,也可通过串口更改输出的频率,串口部分代码该文件没有。
代码片段和文件信息
/*--------------------------------------------------------------------------------------
* Include
*-------------------------------------------------------------------------------------*/
#include “spi.h“
#include “IO.h“
//unsigned char RFdivide=1; //默认内部RF-divide2全部使能
unsigned char RFdivide=0; //默认内部RF-divide2 仅仅大于4G时使能
//double mon_N_Datamon_N_fra_;
//unsigned long mon_N_intmon_N_fra;
/*HMC_STR HMC = {
.HMC_Init = HMC_Init
.write_LO1 = write_LO1
.write_LO2 = write_LO2
};
*/
void LO1_SendByte(unsigned int dat)
{
unsigned int ControlValue;
unsigned char i;
ControlValue = dat;
for(i=0; i<32; i++)
{
CLR_SCL1;
if(0x80000000 == (ControlValue & 0x80000000))
{
GPIO_SetBits(GPIO_E_PORT GPIO_Pin_4);
//SET_DAT1;
}
else
{
GPIO_ResetBits(GPIO_E_PORT GPIO_Pin_4); //Send zero to SDIO pin
//CLR_DAT1;
}
SET_SCL1;
ControlValue <<= 1; //Rotate data
}
}
static void LO1_HMC704_senddata(unsigned int addrunsigned int ddata)
{
unsigned int Txdat;
Txdat=ddata*2+addr*33554432; //发送数据: data*2+addr*2^25
SET_CS1; //使用SPI内部的使能线
LO1_SendByte(Txdat);
CLR_CS1;
}
void LO1_HMC704_Ctrl(unsigned int Nintunsigned int Nfraunsigned char RFDividMod) //发送数据: data*2+addr*2^25
{
LO1_HMC704_senddata(0x010x000002); // reg 01 0x000002 片选使能
LO1_HMC704_senddata(0x020x000001); // reg 02 0x000001 R值
// LO1_HMC704_senddata(); // reg 05 默认
LO1_HMC704_senddata(0x060x30F4A); // reg 06 0x30F4A delta调制类型 小数模式B
LO1_HMC704_senddata(0x070xD4D); // reg 07 0xD4D 设定锁定监测的时间窗口
if(RFDividMod==1) //2分频使能
LO1_HMC704_senddata(0x080x09BEFF); // reg 08 使能寄存器8G/2=0:0x11837DFE =1:0x11937DFE
else
LO1_HMC704_senddata(0x080x01BEFF); // reg 08 使能寄存器8G/2=0:0x11837DFE =1:0x11937DFE
LO1_HMC704_senddata(0x090x593264); // reg 090x593264 设定电荷泵电流和电荷泵偏置电流
// LO1_HMC704_senddata(); // reg 0B 默认设置
LO1_HMC704_senddata(0x0F0x81 ); // reg 0F 0x81 HMC模式,LD锁定输出
LO1_HMC704_senddata(0x03Nint); // reg 03 N_int
LO1_HMC704_senddata(0x04Nfra); // reg 04 N_fra
}
//LO1写频率函数
void write_LO1(unsigned char freState unsigned long Frebuff)
{
double FreDataIn;
double N_DataN_fra_;
unsigned long N_intN_fra;
FreDataIn=Frebuff/2.0; //环路2分频
if(RFdivide==1) //内部全部2分
- 上一篇:控件和界面测试用例 文本测试用例
- 下一篇:NUMECA并行计算教程
相关资源
- 基于STM32F4x9的LCD显示
- VS1053B编解码器的VDR分布式声音采集卡
- stm32的DAC播放音乐文件
- STM32+TMC5160代码电路图.rar
- 基于STM32的深海钻机甲板控制系统
- stm32f103.SchDoc
- STM32F103 USART+DMA
- DMA+stm32 407.zip
- 4_USART串口通信(空闲中断+DMA.zip
- stm32f105-usart-DMA收发demo
- STM32F042F6P6 Uart12DMA;发送中断接收
- 基于STM32的嵌入式双目图像采集系统设
- 基于STM32F103C8单片机的晶联讯电子JL
- 基于STM32的温湿度检测系统实现
- stm32F4+w5300
- 14284969_《STM32单片机应用与全案例实践
-
ST-li
nk-V2的SWD仿真使用方法.docx - 安富莱STM32开发板资料
- STM32F103实现OV7670摄像头显示
- STM32F207学习板例程
- STM32F103VCT6TR - High-density performance lin
- STM32 SRAM启动的 KeiL 配置
- STM32的IAP-Bootloader程序
- STM32例程之Bootloader
- stm32f103 虚拟U盘,调试成功的
- 基于stm32F103vct6的SD卡FATFS文件系统移植
- STM32F030从机中断接收的iic代码,附带
- FreeModbus_Slave+STM32F407+USART2代码亲测可
- STM32+1602液晶proteus仿真.zip
- STM32循迹小车
评论
共有 条评论