|
基于STM3F4的簡(jiǎn)易示波器 TFT屏幕顯示
源碼如下
- #include "sys.h"
- #include "math.h"
- #include "arm_math.h"
- float fft_inputbuf[FFT_LENGTH*2]; //FFT輸入數(shù)組
- float fft_outputbuf[FFT_LENGTH]; //FFT輸出數(shù)組
- float point_x;
- float point_y;
- //u32 pinlv[3]; // FPGA 頻率 2
- float x_o=xx0;
- float y_o=yy0;
- u16 updata;
- int main()
- {
- u16 trigger=1000;
- u32 temp=0;
- u32 temp1=0;
- u16 i;
- arm_cfft_radix4_instance_f32 scfft;
- u8 gate;
- u16 adc1;
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設(shè)置系統(tǒng)中斷優(yōu)先級(jí)分組2
- delay_init(168); //初始化延時(shí)函數(shù)
- uart_init(115200);
-
- printf("asad");
- LCD_Init();
- // Dac1_Init(); //DAC通道1初始化
- // Dac2_Init();
- // Key_Init();
- // I2C_INIT();
- // Adc_Init();
- // Dac1_Set_Vol(1500);
- POINT_COLOR=BLUE;//設(shè)置字體為藍(lán)色
- //LCD_ShowString(0,line3,110,16,16,"mea frequency:");
- // LCD_ShowString(0,line4,80,16,16,"mea Amp:");
- My_Spi_Init();
- arm_cfft_radix4_init_f32(&scfft,FFT_LENGTH,0,1);//初始化scfft結(jié)構(gòu)體,設(shè)定FFT相關(guān)參數(shù)
-
- // LCD_DrawLine(xx0,zhongjian,xx1,zhongjian); //橫軸
- // LCD_DrawLine(xx0,yy0,xx0,yy1); //縱軸
- // LCD_ShowString(row,zhongjian+(float)(yy0-zhongjian)/(1.0-0)*0,24,16,16,"0.0");//縱軸
- // LCD_ShowString(row,zhongjian+(float)(yy0-zhongjian)/(1.0-0)*0.5,27,16,12,"-1.5");//縱軸
- // LCD_ShowString(row,zhongjian+(float)(yy0-zhongjian)/(1.0-0)*1.0,27,16,12,"-3.0");//縱軸
- // LCD_ShowString(row,zhongjian-(float)(yy0-zhongjian)/(1.0-0)*0.5,24,16,12,"1.5");//縱軸
- // LCD_ShowString(row,zhongjian-(float)(yy0-zhongjian)/(1.0-0)*1.0,24,16,12,"3.0");//縱軸
- // LCD_ShowString(row,yy1-16,24,16,16,"V");//縱軸
- // LCD_DrawLine(xx0+(float)(xx1-xx0)/10*2,zhongjian,xx0+(float)(xx1-xx0)/10*2,zhongjian-4); //橫軸-2
- // LCD_DrawLine(xx0+(float)(xx1-xx0)/10*4,zhongjian,xx0+(float)(xx1-xx0)/10*4,zhongjian-4); //橫軸-4
- // LCD_DrawLine(xx0+(float)(xx1-xx0)/10*6,zhongjian,xx0+(float)(xx1-xx0)/10*6,zhongjian-4); //橫軸-6
- // LCD_DrawLine(xx0+(float)(xx1-xx0)/10*8,zhongjian,xx0+(float)(xx1-xx0)/10*8,zhongjian-4); //橫軸-8
- // LCD_DrawLine(xx0+(float)(xx1-xx0)/10*10,zhongjian,xx0+(float)(xx1-xx0)/10*10,zhongjian-4); //橫軸-10
- // LCD_DrawLine(xx0,zhongjian+(float)(yy0-zhongjian)/(1.0-0)*1.0,xx0+4,zhongjian+(float)(yy0-zhongjian)/(1.0-0)*1.0); //縱軸-1.0
- // LCD_DrawLine(xx0,zhongjian+(float)(yy0-zhongjian)/(1.0-0)*0.5,xx0+4,zhongjian+(float)(yy0-zhongjian)/(1.0-0)*0.5); //縱軸-0.8
- // LCD_DrawLine(xx0,zhongjian-(float)(yy0-zhongjian)/(1.0-0)*0.5,xx0+4,zhongjian-(float)(yy0-zhongjian)/(1.0-0)*0.5); //縱軸-0.6
- // LCD_DrawLine(xx0,zhongjian-(float)(yy0-zhongjian)/(1.0-0)*1.0,xx0+4,zhongjian-(float)(yy0-zhongjian)/(1.0-0)*1.0); //縱軸-0
- while(1)
- {
- for(i=0;i<FFT_LENGTH;i++)//生成信號(hào)序列
- {
- save[i]=SPI_ReadByte(0);
-
- }
- LCD_floatNUM(row0,line1,save[i],4,4,16);
- for(i=0;i<FFT_LENGTH;i++)//生成信號(hào)序列
- {
- if(save[i]>2048)
- save[i]=(save[i]-4096);
- fft_inputbuf[2*i]=(float)save[i]*(5.0/2048.0);
- fft_inputbuf[2*i+1]=0;//虛部全部為0
- }
-
- arm_cfft_radix4_f32(&scfft,fft_inputbuf); //FFT計(jì)算(基4)
- arm_cmplx_mag_f32(fft_inputbuf,fft_outputbuf,FFT_LENGTH); //把運(yùn)算結(jié)果復(fù)數(shù)求模得幅值
- if(temp==0)
- for(i=0;i<FFT_LENGTH;i++)
- {
- // printf("fft_inputbuf[%d]:%f\r\n",i,fft_outputbuf[i]);
- printf("%f\r\n",fft_outputbuf[i]);
- temp++;
- }
- //
- }
-
- }
復(fù)制代碼
全部資料51hei下載地址:
示波器.rar
(1.11 MB, 下載次數(shù): 108)
2018-4-30 01:41 上傳
點(diǎn)擊文件名下載附件
基于STM3F4的簡(jiǎn)易示波器 下載積分: 黑幣 -5
|
|