打印
[应用相关]

STM32 ADC的问题!!

[复制链接]
2946|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
sz_ehome|  楼主 | 2009-7-1 10:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天用那3合1的STM32的板子测试ADC的功能。测出结果既然有25个数值的误差!!这样的ADC怎么用呀,不知道是否哪里有问题没注意到的。
沙发
香水城| | 2009-7-1 11:17 | 只看该作者

这种简易的供学习用的板子,不能用来做模拟部分的性能评

ST推荐使用官方的评估板评估ADC的性能。

STM3210B-EVAL评估板使用说明(附电路图)

使用特权

评论回复
板凳
sz_ehome|  楼主 | 2009-7-1 11:33 | 只看该作者

还是觉得不正常

    看了你那份资料,我现在用的是48PIN的C8T6。不知道为什么说这种板不可以用于ADC性能评估。我同样测试了STM8的ADC功能,测出的结果比STM32的好很多,最大误差在6个数值。我不相信STM32没STM8的性能好,现在还在查找问题所在。不过板子确实很简易,没什么可以查的了(STM8的也很简易)。就不知道软件上是否有问题,贴出给大家帮看看能否发现问题。
void ADC_Int(void)
{
  ADC_InitTypeDef ADC_InitStructure;//定义ADC初始化结构体变量

  ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;//ADC1工作在独立模式
  ADC_InitStructure.ADC_ScanConvMode = ENABLE; //禁止扫描
  ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;//ADC转换工作在连续模式
  ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;//有软件控制转换
  ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;//转换数据右对齐
  ADC_InitStructure.ADC_NbrOfChannel = 1;//转换通道为通道1
  ADC_Init(ADC1, &ADC_InitStructure); //初始化ADC

  //ADC1选择信道0,音序器等级1,采样时间239.5个周期
  ADC_RegularChannelConfig(ADC1, ADC_Channel_0, 1, ADC_SampleTime_239Cycles5);

  ADC_Cmd(ADC1, ENABLE);//使能ADC1
  ADC_ResetCalibration(ADC1); //重置ADC1校准寄存器
  while(ADC_GetResetCalibrationStatus(ADC1));//等待ADC1校准重置完成
  ADC_StartCalibration(ADC1);//开始ADC1校准
  while(ADC_GetCalibrationStatus(ADC1));//等待ADC1校准完成

  ADC_SoftwareStartConvCmd(ADC1, ENABLE); //使能ADC1软件开始转换
}

使用特权

评论回复
地板
香水城| | 2009-7-1 12:22 | 只看该作者

关键是供电方面的滤波和模拟电路方面的干扰问题

ST网站上有一篇应用笔记专门讲如何能够得到最佳的ADC精度。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

10

帖子

0

粉丝