标题: 用STM32做的示波器/信号源/电压表 [打印本页]

作者: 51hei学习技术中    时间: 2016-10-18 14:39
标题: 用STM32做的示波器/信号源/电压表
上一个开箱视频
http://player.youku.com/player.php/sid/XMzc2MjI1NjUy/v.swf
板子简介
这么多年走过来,我深知一个优秀的电子工程师从“器件”级到“系统”级升级的难度,所以最近做了一个综合型的学系统,包含了STM32 / FPGA / CPLD / 51 / TFT / 电压表 / 信号源 / 示波器等,这个东西对于高手来说可能不算什么,所以请高手们手下留情啊。



资料共享

原理图,请猛击下载。
iboard.reva.pdf (431.55 KB, 下载次数: 179)


数据表,请猛击下载。
iBoard_datasheet_V0.pdf (793.68 KB, 下载次数: 118)


DEMO 代码,包含了信号源、示波器、电压表等代码,上万行的源代码。
iBoard_demo.zip (244.33 KB, 下载次数: 173)

主程序:
  1. /*------------------------------------------------------
  2.    FILE NAME   : main.c
  3.    DESCRIPTION :
  4.    VERSION     : 0.0.0 (C)XiaomaGee
  5.    AUTHOR      : XiaomaGee
  6.    CREATE DATE : 2012-1-10
  7.    MODIFY DATE :
  8.    LOGS        :-\

  9.   《iBoard 电子学堂》 DEMO代码
  10.   博客:XiaomaGee.cnblogs.com
  11.   论坛:www.oshcn.com
  12.   店铺:i-Board.taobao.com
  13.   QQ群:204255896        165201798        215053598        215054675        215055211

  14.    --------------------------------------------------------*/

  15. //-----------------Include files-------------------------//
  16. #include "..\include\nvic.h"
  17. #include "..\include\rcc.h"
  18. #include "..\include\dac.h"
  19. #include "..\include\usart.h"
  20. #include "..\include\adc.h"
  21. #include "..\include\hardware.h"
  22. #include "..\include\systick.h"
  23. #include "..\include\evtft.h"
  24. #include "..\include\pwm.h"
  25. #include "..\include\fpga.h"
  26. #include "..\include\gui_core.h"
  27. #include "..\include\font.h"
  28. #include "..\include\spi.h"
  29. #include "..\include\flash.h"
  30. #include "..\usb_include\usb.h"
  31. #include "..\usb_include\usb_command.h"
  32. #include "..\include\event.h"
  33. #include "..\include\arb.h"
  34. #include "..\include\main.h"
  35. #include "..\include\dso.h"
  36. #include "..\include\meter.h"
  37. #include "..\include\power_on.h"


  38. #include <string.h>
  39. #include <stdlib.h>
  40. #include <math.h>


  41. SYS_T sys = {
  42.         .color = COLOR_ORANGE,
  43.         .language = 0,
  44.         .brightness = 100
  45. };



  46. const char rev[] = {
  47. #include "..\rev.dat"
  48. };

  49. int first_run = 1;

  50. //-----------------Function------------------------------//
  51. extern int clock_main(void);
  52. /*-------------------------------------------------------
  53.    NAME       : --
  54.    ENTRY  TYPE: void
  55.    RETURN TYPE: void
  56.    PURPOSE    : ---
  57.    VERSION    : 0.0.0
  58.    DESCRIPTION:
  59.    CREATE DATE: ---
  60.    LOGS       :
  61.    ---------------------------------------------------------*/
  62. __asm void system_reset(void)
  63. {
  64.         MOV R0, # 1
  65.         MSR FAULTMASK, R0
  66.         LDR R0, = 0xE000ED0C
  67.         LDR R1, = 0x05FA0004
  68.         STR R1, [R0]

  69. deadloop
  70.         B deadloop
  71. }

  72. /*-------------------------------------------------------
  73.    NAME       : --
  74.    ENTRY  TYPE: void
  75.    RETURN TYPE: void
  76.    PURPOSE    : ---
  77.    VERSION    : 0.0.0
  78.    DESCRIPTION:
  79.    CREATE DATE: ---
  80.    LOGS       :
  81.    ---------------------------------------------------------*/
  82. int main(void)
  83. {
  84.         STRING_T s;
  85.         int i, j;
  86.         char * main_str[2][4] = {
  87.                 { " 信号源 ", " 示波器 ", " 电压表 ", " 时 钟 " },
  88.                 { "   ARB  ", "   DSO  ", "Voltmeter ", " Clock " }
  89.         };
  90.         int main_fun = 0;
  91.         int flag = 1;
  92.         int(*fun[4]) (void) = {
  93.                 arb.main,
  94.                 dso.main,
  95.                 meter.main,
  96.                 clock_main
  97.         };

  98.         power_on();

  99.         while (1) {
  100.                 usb_command.capture_handle();

  101.                 if (event == KEY_LEFT || event == KEY_UP) {
  102.                         main_fun--;
  103.                         if (main_fun < 0) main_fun = 0;
  104.                         flag = 1;
  105.                 }
  106.                 if (event == KEY_RIGHT || event == KEY_DOWN) {
  107.                         main_fun++;
  108.                         if (main_fun > 3) main_fun = 3;
  109.                         flag = 1;
  110.                 }

  111.                 if (event == KEY_ENTER) {
  112.                         for (i = 0; i <= 100; i++) {
  113.                                 pwm.initialize(100 - i);
  114.                                 for (j = 0; j < 20000; j++) ;
  115.                         }

  116.                         fun[main_fun]();
  117.                         first_run = 1;
  118.                         event = 0;
  119.                         flag = 1;
  120.                         show_logo();
  121.                 }

  122.                 if (flag) {
  123.                         event = 0;
  124.                         flag = 0;
  125.                         font._default.single_byte = &fixedsys;
  126.                         font._default.double_byte = &simsun16;
  127.                         for (i = 0; i < 4; i++) {
  128.                                 s.x = 170 + i * 77;
  129.                                 s.y = 235;
  130.                                 s.color = COLOR_BLACK;
  131.                                 s.background_color = main_fun == i ? COLOR_ORANGE : COLOR_WHITE;

  132.                                 s.space.line = 0;
  133.                                 s.space.word = 0;
  134.                                 s.inverse = NULL;

  135.                                 font.printf(&s, "%s", main_str[sys.language][i]);
  136.                         }
  137.                 }
  138.         }
  139. }
复制代码




作者: onepcb    时间: 2016-12-14 11:01
谢谢分享!,,,,
作者: onepcb    时间: 2016-12-27 08:57
谢谢分享!,,,,
作者: zeng_fanlong    时间: 2016-12-28 08:53
好资源,看一下,这个试着做一个
作者: 邰夏留    时间: 2017-1-3 12:43
顶,好帖就得让大家都看到,顶上去
作者: mslong    时间: 2017-1-4 01:40
好资源,看一下,
作者: 123456ABCD    时间: 2017-1-5 16:07
可以嘛楼主
作者: XDDZ1013    时间: 2017-5-12 22:18
谢谢分享
作者: piplxh    时间: 2017-5-13 22:59
不错啊!学习啦1
作者: jackey坏蛋    时间: 2017-10-12 21:25
楼主这个电压表可以测多少v的电压?
作者: 三叉戟2D5    时间: 2017-11-26 11:55
不错啊!学习啦
作者: pgdw    时间: 2017-12-12 14:22
上万行的源码,需要好好学习一下,感谢楼主无私分享。
作者: qwertyuiop3    时间: 2018-12-24 11:43
谢谢楼主,学习学习
作者: 快乐眼泪    时间: 2018-12-25 20:31
感谢楼主分享!
作者: xbdbox    时间: 2018-12-26 08:36

感谢楼主分享!
作者: mrhan1992    时间: 2018-12-26 10:24
楼主厉害,感谢楼主把代码放出来
作者: 22793088    时间: 2019-5-11 11:20
好厉害的样子,参考一下
作者: 15年的51菜鸟    时间: 2019-5-11 23:50
这个套件在网上买要多少钱?
作者: 快乐眼泪    时间: 2019-5-14 20:24
感谢楼主分享!




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1