纬图虚拟仪器论坛

 找回密码
 立即注册
搜索
查看: 16770|回复: 15

STM32例程之ADC查询采样电压值(源码下载)

[复制链接]
发表于 2012-7-30 15:46:38 | 显示全部楼层 |阅读模式
本帖最后由 wdluo 于 2012-8-7 09:42 编辑

采用查询的方式循环采集多路ADC输入电压值,主函数如下:
  1. /**
  2.   * @brief  通过扫描的方式循环读取ADC采集的电压值
  3.   * @param  None
  4.   * @retval None
  5.   */
  6. int main(void)
  7. {
  8.     SystemInit();//系统时钟初始化
  9.         USART_Configuration();//串口1初始化
  10.         printf("\x0c\0");printf("\x0c\0");//超级终端清屏
  11.         printf("\033[1;40;32m");//设置超级终端背景为黑色,字符为绿色
  12.         printf("\r\n*******************************************************************************");
  13.         printf("\r\n************************ Copyright 2009-2012, ViewTool ************************");
  14.         printf("\r\n*************************** http://www.viewtool.com ***************************");
  15.         printf("\r\n***************************** All Rights Reserved *****************************");
  16.         printf("\r\n*******************************************************************************");
  17.         printf("\r\n");
  18.         ADC_GPIO_Configuration();
  19.         ADC_Initialize();
  20.         ADC_Cmd(ADC1, ENABLE);
  21.         while(1)
  22.         {
  23.                 ADC_RegularChannelConfig(ADC1, ADC_Channel_10, 1, ADC_SampleTime_55Cycles5);
  24.                 ADC_SoftwareStartConvCmd(ADC1, ENABLE);//开始转换
  25.                 while(ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC)!=SET);//等待转换完毕
  26.                 printf("ADC1.10 = %f\n\r",ADC_GetConversionValue(ADC1)*3.3/4096);//ADC1的10通道
  27.                 ADC_SoftwareStartConvCmd(ADC1, DISABLE);

  28.                 ADC_RegularChannelConfig(ADC1, ADC_Channel_11, 1, ADC_SampleTime_55Cycles5);
  29.                 ADC_SoftwareStartConvCmd(ADC1, ENABLE);//开始转换
  30.                 while(ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC)!=SET);//等待转换完毕
  31.                 printf("ADC1.11 = %f\n\r",ADC_GetConversionValue(ADC1)*3.3/4096);//ADC1的11通道
  32.                 ADC_SoftwareStartConvCmd(ADC1, DISABLE);

  33.                 ADC_RegularChannelConfig(ADC1, ADC_Channel_12, 1, ADC_SampleTime_55Cycles5);
  34.                 ADC_SoftwareStartConvCmd(ADC1, ENABLE);//开始转换
  35.                 while(ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC)!=SET);//等待转换完毕
  36.                 printf("ADC1.12 = %f\n\r",ADC_GetConversionValue(ADC1)*3.3/4096);//ADC1的12通道
  37.                 ADC_SoftwareStartConvCmd(ADC1, DISABLE);
  38.         }
  39. }
复制代码
adc_scan_multiple.rar (629.61 KB, 下载次数: 324)
回复

使用道具 举报

发表于 2012-8-7 21:28:05 | 显示全部楼层

回帖奖励 +2

顶个!顶个!
回复 支持 反对

使用道具 举报

发表于 2012-8-22 17:36:00 | 显示全部楼层
各个模块都顶
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-8-22 17:38:19 | 显示全部楼层
xinjitmzy 发表于 2012-8-22 17:36
各个模块都顶

回复 支持 反对

使用道具 举报

发表于 2012-8-31 10:26:09 | 显示全部楼层
我运行了一下,串口终端显示不了电压值,什么原因?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-8-31 10:37:59 | 显示全部楼层
zhanglun 发表于 2012-8-31 10:26
我运行了一下,串口终端显示不了电压值,什么原因?

这个原因就多了,建议自己先分析下,程序我是测试过,应该会没问题
回复 支持 反对

使用道具 举报

发表于 2012-8-31 22:07:10 | 显示全部楼层
先收藏!以后学习!谢谢楼主分享
回复 支持 反对

使用道具 举报

发表于 2012-9-6 11:30:40 | 显示全部楼层
谢谢分享!
回复 支持 反对

使用道具 举报

发表于 2012-9-6 21:11:29 | 显示全部楼层
先下了,学习学习
回复 支持 反对

使用道具 举报

发表于 2012-9-10 11:04:26 | 显示全部楼层
非常感谢分享
回复 支持 反对

使用道具 举报

发表于 2012-11-24 14:43:48 | 显示全部楼层
非常感谢分享
回复 支持 反对

使用道具 举报

发表于 2014-7-17 19:42:33 | 显示全部楼层
   STM32例程之ADC查询采样电压值(源码下载)
回复 支持 反对

使用道具 举报

发表于 2014-7-20 09:15:40 | 显示全部楼层
STM32例程之ADC查询采样电压值
回复 支持 反对

使用道具 举报

发表于 2015-11-30 16:58:01 | 显示全部楼层
啥也不说了,楼主就是给力!
回复 支持 反对

使用道具 举报

发表于 2017-2-3 20:43:13 | 显示全部楼层
以后学习!谢谢楼主分享
回复 支持 反对

使用道具 举报

发表于 2019-12-13 10:29:27 | 显示全部楼层
很好,顶一个!
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|纬图虚拟仪器

GMT+8, 2024-12-22 11:11 , Processed in 0.165424 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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