找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2497|回复: 0
打印 上一主题 下一主题
收起左侧

STM32单片机16路ADC采集通道,AD值3种处理方式效果对比

[复制链接]
跳转到指定楼层
楼主
ID:812918 发表于 2020-8-10 14:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
视频https://www.bilibili.com/video/BV1tt4y1C7Yb

单片机源程序如下:
  1. /**********************************************************************************/
  2. #include "stm32f10x.h"//SystemInit()
  3. #include "main.h"
  4. #include "adc.h"
  5. #include "sys.h"
  6. #include "delay.h"
  7. #include "wdg.h"
  8. #include "time2.h"
  9. #include "adc.h"
  10. /************************************************************************************/
  11. uint8_t i=0;
  12. double ii=0;
  13. uint8_t xunhuan_for=0;                         //FOR循环中使用的变量
  14. double ADC_Zhi0=0;
  15. double DianYa0=0;
  16. double ADC_Zhi1=0;
  17. double DianYa1=0;
  18. double ADC_Zhi2=0;
  19. double DianYa2=0;
  20. double ADC_Zhi3=0;
  21. double DianYa3=0;
  22. double ADC_Zhi4=0;
  23. double DianYa4=0;
  24. double ADC_Zhi5=0;
  25. double DianYa5=0;
  26. double ADC_Zhi6=0;
  27. double DianYa6=0;
  28. double ADC_Zhi7=0;
  29. double DianYa7=0;

  30. double ADC_Zhi8=0;
  31. double DianYa8=0;
  32. double ADC_Zhi9=0;
  33. double DianYa9=0;
  34. double ADC_Zhi10=0;
  35. double DianYa10=0;
  36. double ADC_Zhi11=0;
  37. double DianYa11=0;
  38. double ADC_Zhi12=0;
  39. double DianYa12=0;
  40. double ADC_Zhi13=0;
  41. double DianYa13=0;
  42. double ADC_Zhi14=0;
  43. double DianYa14=0;
  44. double ADC_Zhi15=0;
  45. double DianYa15=0;
  46. /************************************************************************************/
  47. /************************************************************************************/
  48. int main(void)
  49. {
  50.         YinJiao_init();
  51.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
  52.         delay_init();               
  53.   Adc_Init();        
  54.   TIM2_Init(9999,7199);//10Khz的计数频率,计数到5000为500ms;;10000为1000ms = 1S;定时时间:Tout= ((arr+1)*(psc+1))/Tclk;(250MS)
  55.   IWDG_Init(4,1875);   //设置分频数为4*2^(4)=64,重载值为625,溢出时间为1s;;1875时为3S        
  56. /************************************************************************************/
  57. while(1)
  58. {
  59. //  ADC_Zhi0=Get_Adc(0);//通道0
  60. //        DianYa0=ADC_Zhi0*2.5/4096;
  61. //        
  62. //  ADC_Zhi1=Get_Adc(1);//通道1
  63. //        DianYa1=ADC_Zhi1*2.5/4096;
  64. //        
  65. //  ADC_Zhi2=Get_Adc(2);//通道2
  66. //        DianYa2=ADC_Zhi2*2.5/4096;
  67. //        
  68. //  ADC_Zhi3=Get_Adc(3);//通道3
  69. //        DianYa3=ADC_Zhi3*2.5/4096;
  70. //        
  71. //  ADC_Zhi4=Get_Adc(4);//通道4
  72. //        DianYa4=ADC_Zhi4*2.5/4096;
  73. //        
  74. //  ADC_Zhi5=Get_Adc(5);//通道5
  75. //        DianYa5=ADC_Zhi5*2.5/4096;
  76. //        
  77. //  ADC_Zhi6=Get_Adc(6);//通道6
  78. //        DianYa6=ADC_Zhi6*2.5/4096;
  79. //        
  80. //  ADC_Zhi7=Get_Adc(7);//通道7
  81. //        DianYa7=ADC_Zhi7*2.5/4096;
  82. //        
  83. //  ADC_Zhi8=Get_Adc(8);//通道8
  84. //        DianYa8=ADC_Zhi8*2.5/4096;
  85. //        
  86. //  ADC_Zhi9=Get_Adc(9);//通道9
  87. //        DianYa9=ADC_Zhi9*2.5/4096;
  88. //        
  89. //  ADC_Zhi10=Get_Adc(10);//通道10
  90. //        DianYa10=ADC_Zhi10*2.5/4096;
  91. //        
  92. //  ADC_Zhi11=Get_Adc(11);//通道11
  93. //        DianYa11=ADC_Zhi11*2.5/4096;
  94. //        
  95. //  ADC_Zhi12=Get_Adc(12);//通道12
  96. //        DianYa12=ADC_Zhi12*2.5/4096;
  97. //        
  98. //  ADC_Zhi13=Get_Adc(13);//通道13
  99. //        DianYa13=ADC_Zhi13*2.5/4096;
  100. //        
  101. //  ADC_Zhi14=Get_Adc(14);//通道14
  102. //        DianYa14=ADC_Zhi14*2.5/4096;
  103. //        
  104. //  ADC_Zhi15=Get_Adc(15);//通道15
  105. //        DianYa15=ADC_Zhi15*2.5/4096;
  106. /************************************************************************************/        
  107. /************************************************************************************/
  108. //        ADC_Zhi0=Get_Adc10_Average(0,60);//通道0
  109. //        DianYa0=ADC_Zhi0*2.5/4096;
  110. //        
  111. //  ADC_Zhi1=Get_Adc10_Average(1,60);//通道1
  112. //        DianYa1=ADC_Zhi1*2.5/4096;
  113. //        
  114. //  ADC_Zhi2=Get_Adc10_Average(2,60);//通道2
  115. //        DianYa2=ADC_Zhi2*2.5/4096;
  116. //        
  117. //  ADC_Zhi3=Get_Adc10_Average(3,60);//通道3
  118. //        DianYa3=ADC_Zhi3*2.5/4096;
  119. //        
  120. //  ADC_Zhi4=Get_Adc10_Average(4,60);//通道4
  121. //        DianYa4=ADC_Zhi4*2.5/4096;
  122. //        
  123. //  ADC_Zhi5=Get_Adc10_Average(5,60);//通道5
  124. //        DianYa5=ADC_Zhi5*2.5/4096;
  125. //        
  126. //  ADC_Zhi6=Get_Adc10_Average(6,60);//通道6
  127. //        DianYa6=ADC_Zhi6*2.5/4096;
  128. //        
  129. //  ADC_Zhi7=Get_Adc10_Average(7,60);//通道7
  130. //        DianYa7=ADC_Zhi7*2.5/4096;
  131. //        
  132. //        ADC_Zhi8=Get_Adc10_Average(8,60);//通道8
  133. //        DianYa8=ADC_Zhi8*2.5/4096;
  134. //        
  135. //  ADC_Zhi9=Get_Adc10_Average(9,60);//通道9
  136. //        DianYa9=ADC_Zhi9*2.5/4096;
  137. //        
  138. //  ADC_Zhi10=Get_Adc10_Average(10,60);//通道10
  139. //        DianYa10=ADC_Zhi10*2.5/4096;
  140. //        
  141. //  ADC_Zhi11=Get_Adc10_Average(11,60);//通道11
  142. //        DianYa11=ADC_Zhi11*2.5/4096;
  143. //        
  144. //  ADC_Zhi12=Get_Adc10_Average(12,60);//通道12
  145. //        DianYa12=ADC_Zhi12*2.5/4096;
  146. //        
  147. //  ADC_Zhi13=Get_Adc10_Average(13,60);//通道13
  148. //        DianYa13=ADC_Zhi13*2.5/4096;
  149. //        
  150. //  ADC_Zhi14=Get_Adc10_Average(14,60);//通道14
  151. //        DianYa14=ADC_Zhi14*2.5/4096;
  152. //        
  153. //  ADC_Zhi15=Get_Adc10_Average(15,60);//通道15
  154. //        DianYa15=ADC_Zhi15*2.5/4096;
  155. /************************************************************************************/        
  156. /************************************************************************************/
  157.         ADC_Zhi0=Get_Adc_Average(0,61);//通道0
  158.         DianYa0=ADC_Zhi0*2.5/4096;

  159.   ADC_Zhi1=Get_Adc_Average(1,61);//通道1
  160.         DianYa1=ADC_Zhi1*2.5/4096;

  161.   ADC_Zhi2=Get_Adc_Average(2,61);//通道2
  162.         DianYa2=ADC_Zhi2*2.5/4096;
  163.         
  164.   ADC_Zhi3=Get_Adc_Average(3,61);//通道3
  165.         DianYa3=ADC_Zhi3*2.5/4096;
  166.         
  167.   ADC_Zhi4=Get_Adc_Average(4,61);//通道4
  168.         DianYa4=ADC_Zhi4*2.5/4096;
  169.         
  170.   ADC_Zhi5=Get_Adc_Average(5,61);//通道5
  171.         DianYa5=ADC_Zhi5*2.5/4096;
  172.         
  173.   ADC_Zhi6=Get_Adc_Average(6,61);//通道6
  174.         DianYa6=ADC_Zhi6*2.5/4096;
  175.         
  176.   ADC_Zhi7=Get_Adc_Average(7,61);//通道7
  177.         DianYa7=ADC_Zhi7*2.5/4096;
  178. ///////////////////////////////////////////////////
  179.         ADC_Zhi8=Get_Adc_Average(8,61);//通道8
  180.         DianYa8=ADC_Zhi8*2.5/4096;

  181.   ADC_Zhi9=Get_Adc_Average(9,61);//通道9
  182.         DianYa9=ADC_Zhi9*2.5/4096;

  183.   ADC_Zhi10=Get_Adc_Average(10,61);//通道10
  184.         DianYa10=ADC_Zhi10*2.5/4096;
  185.         
  186.   ADC_Zhi11=Get_Adc_Average(11,61);//通道11
  187.         DianYa11=ADC_Zhi11*2.5/4096;
  188.         
  189.   ADC_Zhi12=Get_Adc_Average(12,61);//通道12
  190.         DianYa12=ADC_Zhi12*2.5/4096;
  191.         
  192.   ADC_Zhi13=Get_Adc_Average(13,61);//通道13
  193.         DianYa13=ADC_Zhi13*2.5/4096;
  194.         
  195.   ADC_Zhi14=Get_Adc_Average(14,61);//通道14
  196.         DianYa14=ADC_Zhi14*2.5/4096;
  197.         
  198.   ADC_Zhi15=Get_Adc_Average(15,61);//通道15
  199.         DianYa15=ADC_Zhi15*2.5/4096;
  200. }
  201. /************************************************************************************/         
  202. }
  203. /************************************************************************************/
复制代码

代码下载: CeShiChengXu.7z (186.09 KB, 下载次数: 34)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表