搜索
bottom↓
回复: 9

STM32的ADC连续转换模式是怎么回事?

[复制链接]

出0入0汤圆

发表于 2010-5-13 08:07:33 | 显示全部楼层 |阅读模式
STM32的ADC连续转换模式是怎么回事?就是具体转换过程是什么?

出0入0汤圆

 楼主| 发表于 2010-5-17 08:37:23 | 显示全部楼层
这年头真是奇怪啊,又是有人看没人回

出0入0汤圆

发表于 2010-6-9 18:39:32 | 显示全部楼层
回一个。

出0入0汤圆

发表于 2010-6-9 19:28:53 | 显示全部楼层
回一个, 但帮不上忙

出0入0汤圆

发表于 2010-6-10 18:19:51 | 显示全部楼层
这年头真是奇怪啊,很多人都不愿意看手册。

出0入4汤圆

发表于 2010-6-10 19:39:27 | 显示全部楼层
连续转换,就是像疯了一样的不停的转换。

出0入0汤圆

发表于 2010-6-13 21:02:42 | 显示全部楼层
我好像就这样用的,连续采集到一个变量里面,然后定时把这个变量赋值给另外的变量,就相当于低速采集数据了,效果好像还可以.

出0入24汤圆

发表于 2010-6-14 14:17:07 | 显示全部楼层
就是这一次转换完成之后立即开始下一次转换,转换速度只由你的采样时间+转换时间决定。
    这是一种方式转换很快的,我的毕设就是这么悲剧的。心电图,TIM触发500Hz采样率,结果弄成连续转换模式了。悲剧了,将近1M的采样率,数据处理来不及,液晶显示也来不及,搞了几天都不行。最后白天检查硬件的时候东西没有,晚上在天子里看见一个ADC的例子,想起我的工作模式来,程序里面一改,马上好了,很不错的心电图显示,然后我就有了一种撞墙的冲动。
心电图制作的资料等我这段时间忙完就上传上来,先发几张图片上来给大伙瞧瞧,看看有兴趣的人多不,不多说了,看图:

(原文件名:1.jpg)


(原文件名:2.jpg)


(原文件名:5.jpg)


(原文件名:6.jpg)

软件用的是TI的串口显示程序,实际效果跟液晶上面是以模一样的。

出0入0汤圆

发表于 2011-2-21 18:35:59 | 显示全部楼层
这个东西比较感兴趣,发个程序上来,

出75入8汤圆

发表于 2024-1-4 17:03:27 | 显示全部楼层
banyai 发表于 2010-6-10 19:39
连续转换,就是像疯了一样的不停的转换。
(引用自6楼)

我倒希望像疯了一样转换,我的不动,启动一次转换一次。
STM32L431 设置为ADC连续转换,结果还是要手动停止才可以。
void MX_ADC1_Init(void)
{
  ADC_ChannelConfTypeDef sConfig = {0};

  /** Common config
  */
  hadc1.Instance = ADC1;
  hadc1.Init.ClockPrescaler = ADC_CLOCK_ASYNC_DIV1;
  hadc1.Init.Resolution = ADC_RESOLUTION_12B;
  hadc1.Init.DataAlign = ADC_DATAALIGN_RIGHT;
  hadc1.Init.ScanConvMode = ADC_SCAN_DISABLE;
  hadc1.Init.EOCSelection = ADC_EOC_SINGLE_CONV;
  hadc1.Init.LowPowerAutoWait = DISABLE;
  hadc1.Init.ContinuousConvMode = ENABLE;
  hadc1.Init.NbrOfConversion = 1;
  hadc1.Init.DiscontinuousConvMode = DISABLE;
  hadc1.Init.ExternalTrigConv = ADC_SOFTWARE_START;
  hadc1.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE;
  hadc1.Init.DMAContinuousRequests = DISABLE;
  hadc1.Init.Overrun = ADC_OVR_DATA_PRESERVED;
  hadc1.Init.OversamplingMode = DISABLE;
  if (HAL_ADC_Init(&hadc1) != HAL_OK)
  {
    Error_Handler();
  }
  /** Configure Regular Channel
  */
  sConfig.Channel = ADC_CHANNEL_8;
  sConfig.Rank = ADC_REGULAR_RANK_1;
  sConfig.SamplingTime = ADC_SAMPLETIME_2CYCLES_5;
  sConfig.SingleDiff = ADC_SINGLE_ENDED;
  sConfig.OffsetNumber = ADC_OFFSET_NONE;
  sConfig.Offset = 0;
  if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
  {
    Error_Handler();
  }

}






每一次都要停止:
HAL_ADC_Start(&hadc1);
        HAL_ADC_PollForConversion(&hadc1,0x02);     //等待转换完成
                                HAL_ADC_Stop(&hadc1); 如果不停止下次转换就没数据。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-29 20:10

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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