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

请教STM8AF芯片如何读取ADC的参考电压

[复制链接]
jkhmf 提问时间:2016-10-17 16:59 /
网上讲ADC有参考电压是1.2V,因为是内部参考没有引用,我查STM8AF5288最高0:9共10个通道,试了一下读10与11出来的值都不对比较大应该不对。不知道如何读出1.2V电压的ADC值用作参考电压。
收藏 1 评论9 发布时间:2016-10-17 16:59

举报

9个回答
lulugl 回答时间:2016-10-18 08:52:45
应该是第7通道吧1.22V的参考电压
仙景 回答时间:2016-10-18 08:54:01
应该是第7通道吧1.22V的参考电压,要配置的,配置好了再去读取
z258121131 回答时间:2016-10-18 09:03:02
学习了,定
samhong 回答时间:2016-10-18 09:45:09
查了PDF,现理解了,谢了!
zengyi703-16313 回答时间:2016-10-18 11:33:59
看下参考手册
anywill 回答时间:2016-10-18 11:43:20
网上搜的你试试
/* Includes ------------------------------------------------------------------*/
#include "stm8l15x.h"

u16 value[10];
void delay_us(u16 n);
void main(void)
{
  u8 i=0;
  CLK_SYSCLKDivConfig(CLK_SYSCLKDiv_1);
  CLK_PeripheralClockConfig(CLK_Peripheral_ADC1, ENABLE);
  ADC_DeInit(ADC1);
  ADC_Init(ADC1,ADC_ConversionMode_Single,ADC_Resolution_12Bit,ADC_Prescaler_2);
  ADC_SamplingTimeConfig(ADC1, ADC_Group_SlowChannels,ADC_SamplingTime_384Cycles);
  ADC_SamplingTimeConfig(ADC1, ADC_Group_FastChannels,ADC_SamplingTime_9Cycles);
  ADC_DMACmd(ADC1, DISABLE);
  /* Infinite loop */
  while (1)
  {
    ADC_ChannelCmd(ADC1, ADC_Channel_Vrefint,ENABLE);//选择内部基准通道
    ADC_Cmd(ADC1, ENABLE);//ADON
    ADC_VrefintCmd(ENABLE);//TSON
    delay_us(5);
    for (i=0;i<10;i++)
    {
      ADC_SoftwareStartConv(ADC1);//START
      while(ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC)==0){};//wait for EOC
      value = ADC_GetConversionValue(ADC1);
    }
    ADC_Cmd(ADC1, DISABLE);//ADON复位
    ADC_VrefintCmd(DISABLE);//TSON复位
    ADC_ChannelCmd(ADC1, ADC_Channel_Vrefint,DISABLE);//关闭通道
    delay_us(0xff);
  }
}
/*****************延时us函数*******************/
void delay_us(u16 n)
{
  u32 i=n*16;
  while(--i){};
} 0_13238551994458.gif
MrLi... 回答时间:2016-10-18 11:58:43
支持。。。。。。。。。。。。。
无薪税绵 回答时间:2016-10-18 12:34:50
没有用过ADC,帮楼主加人气。
jkhmf 回答时间:2016-10-18 13:59:26
本帖最后由 jkhmf 于 2016-10-18 14:17 编辑

非常感谢各位,我确实也看了手册,但是发现STM8AF5288系列外部ADC有10路能道,分也是PB0-PB7 +上PE6与PE7是10通道。按理7通道应该不是内部的。刚刚试了一下。PB7我没有接线读出来的数是居然是21632,看上去比较像。
for( uint8_t j=0;j<Row;j++)
   {

        adc_tmp[j][5]= ADC_Init_Channel(ADC2_CHANNEL_7);

   }
A.PNG

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