你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32 ADC 多通道SCAN时相互干扰导致测量结果错误

[复制链接]
lishengping-273 提问时间:2011-7-31 11:14 /
这几天在学习STM32的ADC模块,最先使用的是连续、单通道模式,数据测量准确;之后使用单次、4通道扫描模式,如果四通道全部设置为同一通道,数据也是正确的,或者四通道分别设置为电平相同的通道,数据也是正确的,但是如果四个通道的电平不相同,那么一定会有至少一个通道的数据是错误的,百思不得其解,请各位高手指点。
程序如下:
/* ADC1 configuration ------------------------------------------------------*/
 ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;       //设置ADC为独立工作模式
 ADC_InitStructure.ADC_ScanConvMode = ENABLE;        //使能ADC扫描功能,允许多个通道依次工作
 ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;       //禁止ADC连续工作模式
 ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;//禁止外部触发ADC,由软件SWATART位触发
 ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;      //设置转换结果右对齐,低12位保存结果
 ADC_InitStructure.ADC_NbrOfChannel = 4;          //工作通道数为4
 ADC_Init(ADC1, &ADC_InitStructure);          
 
 /* ADC1 regular channel_13 configuration */
 ADC_RegularChannelConfig(ADC1, ADC_Channel_10, 1, ADC_SampleTime_55Cycles5);
 ADC_RegularChannelConfig(ADC1, ADC_Channel_11, 2, ADC_SampleTime_55Cycles5);
 ADC_RegularChannelConfig(ADC1, ADC_Channel_12, 3, ADC_SampleTime_55Cycles5);
 ADC_RegularChannelConfig(ADC1, ADC_Channel_13, 4, ADC_SampleTime_55Cycles5);
此时通道1接GND,通道2接VCC,通道3悬空,通道4接电位器(电压为1.79V),测试结果如下:
STM32 ADC SCAN Function Test
CH_1 CH_2 CH_3 CH_4
3.40    1.70   1.79    1.79 
0.40    1.56   1.79    1.79 
0.40    1.63   1.79    1.79 
0.40    1.73   1.79    1.79 
0.40    1.57   1.79    1.79 
0.40    1.67   1.79    1.79 
0.40    1.71   1.79    1.79 
0.40    1.58   1.79    1.79 
0.40    1.67   1.79    1.79 
0.40    1.66   1.79    1.79
很明显前面三个通道的测量结果是错误的,但是如果单独测量通道1、2、3、4,结果都没有错误。
收藏 评论1 发布时间:2011-7-31 11:14

举报

1个回答
pdsuwyh 回答时间:2011-7-31 15:05:05

回复:STM32 ADC 多通道SCAN时相互干扰导致测量结果错误

通道切换是需要时间的。

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版