OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3397|回复: 9

STM32的ADC问题

[复制链接]

17

主题

84

帖子

0

精华

初级会员

Rank: 2

积分
108
金钱
108
注册时间
2015-11-30
在线时间
22 小时
发表于 2016-6-29 15:42:07 | 显示全部楼层 |阅读模式
1金钱
我有两个问题
第一个问题,设置连续扫描模式,在设置完成之后,用不用使用软件触发方式触发第一次转换。
第二个问题,就是图片上的两种说法,那种是正确的,还是我的理解有误。(上面那个图片截图字中文参考手册。)
2016.6.29.png

最佳答案

查看完整内容[请看2#楼]

单次是同一组的最后一通道转换结束后ADC停止,直到下次触发 连续是ADC将从该组的第一转换序列开始,一直循环下去
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

13

主题

186

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
441
金钱
441
注册时间
2016-6-30
在线时间
97 小时
发表于 2016-6-29 15:42:08 | 显示全部楼层
brave_dancing 发表于 2016-6-30 17:52
我的第二个问题是    在规则组有多个通道要进行AD转换,那么中断是在一个通道完成之后到来,还是把规则组 ...

单次是同一组的最后一通道转换结束后ADC停止,直到下次触发
连续是ADC将从该组的第一转换序列开始,一直循环下去
回复

使用道具 举报

17

主题

84

帖子

0

精华

初级会员

Rank: 2

积分
108
金钱
108
注册时间
2015-11-30
在线时间
22 小时
 楼主| 发表于 2016-6-29 15:43:42 | 显示全部楼层
求恢复,在线等、、、、、
回复

使用道具 举报

17

主题

84

帖子

0

精华

初级会员

Rank: 2

积分
108
金钱
108
注册时间
2015-11-30
在线时间
22 小时
 楼主| 发表于 2016-6-29 15:44:06 | 显示全部楼层
谢谢、、、、、、、
回复

使用道具 举报

17

主题

84

帖子

0

精华

初级会员

Rank: 2

积分
108
金钱
108
注册时间
2015-11-30
在线时间
22 小时
 楼主| 发表于 2016-6-29 16:46:36 | 显示全部楼层
回复

使用道具 举报

17

主题

84

帖子

0

精华

初级会员

Rank: 2

积分
108
金钱
108
注册时间
2015-11-30
在线时间
22 小时
 楼主| 发表于 2016-6-30 16:59:21 | 显示全部楼层
:(
回复

使用道具 举报

13

主题

186

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
441
金钱
441
注册时间
2016-6-30
在线时间
97 小时
发表于 2016-6-30 17:04:11 | 显示全部楼层
1、不懂你什么意思
2、
开启外部触发
  /* ADC1 configuration ------------------------------------------------------*/
  ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;
  ADC_InitStructure.ADC_ScanConvMode = DISABLE;
  ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;
  ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_T1_CC1;
  ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
  ADC_InitStructure.ADC_NbrOfChannel = 1;
  ADC_Init(ADC1, &ADC_InitStructure);

  /* ADC1 regular channel14 configuration */
  ADC_RegularChannelConfig(ADC1, ADC_Channel_14, 1, ADC_SampleTime_13Cycles5);

  /* Set injected sequencer length */
  ADC_InjectedSequencerLengthConfig(ADC1, 1);
  /* ADC1 injected channel Configuration */
  ADC_InjectedChannelConfig(ADC1, ADC_Channel_11, 1, ADC_SampleTime_71Cycles5);
  /* ADC1 injected external trigger configuration */
  ADC_ExternalTrigInjectedConvConfig(ADC1, ADC_ExternalTrigInjecConv_None);

  /* Enable automatic injected conversion start after regular one */
  ADC_AutoInjectedConvCmd(ADC1, ENABLE);

void ADC1_IRQHandler(void)
{
  /* Get injected channel11 converted value */
  ADC_InjectedConvertedValueTab[Index++] = ADC_GetInjectedConversionValue(ADC1, ADC_InjectedChannel_1);
  /* Clear ADC1 JEOC pending interrupt bit */
  ADC_ClearITPendingBit(ADC1, ADC_IT_JEOC);
}
回复

使用道具 举报

17

主题

84

帖子

0

精华

初级会员

Rank: 2

积分
108
金钱
108
注册时间
2015-11-30
在线时间
22 小时
 楼主| 发表于 2016-6-30 17:49:01 | 显示全部楼层
yijinxiaoyou 发表于 2016-6-30 17:04
1、不懂你什么意思
2、
开启外部触发

我的第一个问题是   如果使用单次转换模式,转换完成之后ADC不就停止工作了吗,需要软件触发或者硬件触发之后开始下一次转换,而在连续转换模式下,一旦开始转换,就不需要再次触发,那么ADC开始工作的时候要不要触发一次啊。
回复

使用道具 举报

17

主题

84

帖子

0

精华

初级会员

Rank: 2

积分
108
金钱
108
注册时间
2015-11-30
在线时间
22 小时
 楼主| 发表于 2016-6-30 17:52:06 | 显示全部楼层
brave_dancing 发表于 2016-6-30 17:49
我的第一个问题是   如果使用单次转换模式,转换完成之后ADC不就停止工作了吗,需要软件触发或者硬件触发 ...

我的第二个问题是    在规则组有多个通道要进行AD转换,那么中断是在一个通道完成之后到来,还是把规则组全部转换完成之后到来(加入中断开启)
回复

使用道具 举报

13

主题

186

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
441
金钱
441
注册时间
2016-6-30
在线时间
97 小时
发表于 2016-6-30 20:25:53 | 显示全部楼层
brave_dancing 发表于 2016-6-30 17:49
我的第一个问题是   如果使用单次转换模式,转换完成之后ADC不就停止工作了吗,需要软件触发或者硬件触发 ...

单次模式下需要软件或外部事件再触发,ADC才进行下一次转换
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-11 08:40

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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