自己寫的用STM32F103,正點原子的mini板(自帶TTL顯示屏),版接本地振蕩器芯片模塊ADF4351,來產生一個頻率范圍在250MHZ~300MHZ的本地正弦波信號。其中,程序可以根據不同按鍵進行不同頻差的步進。
源程序:
- #include "led.h"
- #include "delay.h"
- #include "sys.h"
- #include "usart.h"
- #include "lcd.h"
- #include "adc.h"
- #include "key.h"
- #include "dac.h"
- #include "ADF4351.h"
-
- int main(void)
- {
- // u16 adcx;
- u16 temp;
- // u8 t=0;
- // u16 dacval=0;
- int key;
- float num=285.7;
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// 設置中斷優先級分組2
- delay_init(); //延時函數初始化
- uart_init(9600); //串口初始化為9600
- LED_Init(); //初始化與LED連接的硬件接口
- LCD_Init(); //初始化LCD
- key_init();
- // Adc_Init(); //ADC初始化
- // Dac1_Init(); //DAC通道1初始?
- ADF4351Init();
- ADF4351WriteFreq(num);
-
- POINT_COLOR=RED;//設置字體為紅色
- LCD_ShowString(60,130,200,16,16,"HANG_R1:+ HANG_R3:-");
- //顯示提示信息
- POINT_COLOR=BLUE;//設置字體為藍色
- //// LCD_ShowString(60,150,200,16,16,"DAC VAL:");
- LCD_ShowString(60,170,200,16,16,"NUM VAL:000M");
- //// LCD_ShowString(60,190,200,16,16,"ADC VOL:0.000V");
- // DAC_SetChannel1Data(DAC_Align_12b_R, 0);//????0
- while(1)
- {
- // t++;
- key=key_scan();
- if(key==1)
- {
- LED0=!LED0;
- num+=1;
- }
- else if(key==2)
- {
- LED0=!LED0;
- num+=0.5;
- }
- else if(key==3)
- {
- LED0=!LED0;
- num+=0.2;
- }
- else if(key==4)
- {
- LED0=!LED0;
- num+=0.1;
- }
- else if(key==5)
- {
- LED0=!LED0;
- num-=1;
- }
- else if(key==6)
- {
- LED0=!LED0;
- num-=0.5;
- }
- else if(key==7)
- {
- LED0=!LED0;
- num-=0.2;
- }
- else if(key==8)
- {
- LED0=!LED0;
- num-=0.1;
- }
-
- if(key==1|key==2|key==3|key==4|key==5|key==6|key==7|key==8)
- ADF4351WriteFreq(num);
-
-
- LCD_ShowxNum(124,170,num,3,16,0);
- temp=num;
- temp=(num-temp)*100;
- LCD_ShowxNum(150,170,temp,5,16,0);
- }
-
- }
-
復制代碼
代碼資料51hei附件下載:
本振信號.rar
(1.06 MB, 下載次數: 168)
2018-6-25 06:53 上傳
點擊文件名下載附件
|