標(biāo)題:
基于STM32F4的簡(jiǎn)易示波器源碼
[打印本頁(yè)]
作者:
kali20gakki
時(shí)間:
2018-4-29 19:52
標(biāo)題:
基于STM32F4的簡(jiǎn)易示波器源碼
基于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
作者:
1311565821
時(shí)間:
2019-2-21 20:17
樓主有原理圖嘛??
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1