標(biāo)題:
基于STM32F103C8T6單片機(jī)的簡(jiǎn)易示波器程序
[打印本頁]
作者:
機(jī)械狗213d
時(shí)間:
2023-7-20 20:07
標(biāo)題:
基于STM32F103C8T6單片機(jī)的簡(jiǎn)易示波器程序
簡(jiǎn)易信號(hào)采集系統(tǒng),文件現(xiàn)象和源程序如下。
3B43A71B8950F2207F14B7034A8A42E4.png
(2.23 MB, 下載次數(shù): 37)
下載附件
2023-7-20 20:06 上傳
單片機(jī)源程序如下:
#include "bsp_systick.h"
#include "OLED_I2C.h"
#include "bsp_i2c_gpio.h"
#include "bsp_adc.h"
#include "bsp_advanced_timer.h"
#include <math.h>
#include "pingmu.h"
#include "PWM.h"
#include "IC.h"
#define pi 3.1415926535
#define accur 0.015295
extern uint16_t ConvData;
extern unsigned char BMP1[];
uint16_t ADValue;
float Voltage;
float max=0;
float min=3.30;
int main()
{
PWM_Init();
OLED2_Init();
ADCx_Init();
IC_Init();
OLED2_ShowString(1, 1, "ADValue:");
OLED2_ShowString(2, 1, "max:0.00V");
OLED2_ShowString(3, 1, "min:0.00V");
OLED2_ShowString(4, 1, "Freq:0000000Hz");
uint8_t x;
OLED_Init();
ADCx_Init();
AdvancedTim_Init();
Before_State_Update(accur*ConvData);
OLED_CLS();
while(1)
{
for(x=0;x<128;x=(x+1)%128)
{
ADValue = AD_GetValue();
Voltage = (float)ADValue / 4095 * 3.3/0.360;
OLED2_ShowNum(1, 9, ADValue, 4);
if(max<Voltage )
{
max=Voltage ;
}
OLED2_ShowNum(2, 5, max , 1);
OLED2_ShowNum(2,7, (uint16_t)(max * 100) % 100, 2);
if(min >Voltage )
{
min=Voltage ;
}
OLED2_ShowNum(3, 5, min , 1);
OLED2_ShowNum(3,7, (uint16_t)(min * 100) % 100, 2);
OLED_DrawWave(x,accur*ConvData);
OLED2_ShowNum(4, 6, IC_GetFreq(), 7);
}
}
}
復(fù)制代碼
原理圖:無
仿真:無
Keil代碼下載:
Keil代碼.7z
(194.19 KB, 下載次數(shù): 39)
2023-7-20 22:08 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
作者:
vince
時(shí)間:
2023-7-21 11:40
可以換一個(gè)大點(diǎn)的屏,這太小了
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1