找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 2246|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

基于STM32F103C8T6單片機(jī)的簡易示波器程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
簡易信號(hào)采集系統(tǒng),文件現(xiàn)象和源程序如下。


單片機(jī)源程序如下:
  1. #include "bsp_systick.h"
  2. #include "OLED_I2C.h"
  3. #include "bsp_i2c_gpio.h"
  4. #include "bsp_adc.h"
  5. #include "bsp_advanced_timer.h"
  6. #include <math.h>
  7. #include "pingmu.h"
  8. #include "PWM.h"
  9. #include "IC.h"

  10. #define pi 3.1415926535
  11. #define accur 0.015295
  12. extern uint16_t ConvData;
  13. extern unsigned char BMP1[];
  14. uint16_t ADValue;
  15. float Voltage;
  16. float max=0;
  17. float min=3.30;
  18. int main()
  19. {
  20.         PWM_Init();
  21.         OLED2_Init();
  22.         ADCx_Init();
  23.         IC_Init();
  24.         OLED2_ShowString(1, 1, "ADValue:");
  25.         OLED2_ShowString(2, 1, "max:0.00V");
  26.         OLED2_ShowString(3, 1, "min:0.00V");
  27.         OLED2_ShowString(4, 1, "Freq:0000000Hz");
  28.         uint8_t x;
  29.         OLED_Init();                                         
  30.         ADCx_Init();
  31.         AdvancedTim_Init();
  32.         Before_State_Update(accur*ConvData);
  33.         OLED_CLS();
  34.         while(1)
  35.         {
  36.         
  37.                
  38.                 for(x=0;x<128;x=(x+1)%128)
  39.                 {  
  40.                         
  41.                                 
  42.                         ADValue = AD_GetValue();
  43.                   Voltage = (float)ADValue / 4095 * 3.3/0.360;
  44.                  OLED2_ShowNum(1, 9, ADValue, 4);
  45.                 if(max<Voltage )
  46.                 {
  47.                         max=Voltage ;
  48.                 }
  49.                 OLED2_ShowNum(2, 5, max   , 1);
  50.                 OLED2_ShowNum(2,7, (uint16_t)(max   * 100) % 100, 2);
  51.                 if(min >Voltage )
  52.                 {
  53.                         min=Voltage ;
  54.                 }
  55.                 OLED2_ShowNum(3, 5, min    , 1);
  56.                 OLED2_ShowNum(3,7, (uint16_t)(min    * 100) % 100, 2);
  57.                         OLED_DrawWave(x,accur*ConvData);
  58.                 OLED2_ShowNum(4, 6, IC_GetFreq(), 7);
  59.                 }

  60.                
  61.         }
  62. }
復(fù)制代碼
原理圖:無
仿真:無
Keil代碼下載: Keil代碼.7z (194.19 KB, 下載次數(shù): 39)
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:75737 發(fā)表于 2023-7-21 11:40 | 只看該作者
可以換一個(gè)大點(diǎn)的屏,這太小了
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表