OpenEdv-开源电子网

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

关于STM8LADC采集问题

[复制链接]

6

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
153
金钱
153
注册时间
2015-11-21
在线时间
25 小时
发表于 2016-1-12 12:47:37 | 显示全部楼层 |阅读模式
1金钱
今天在调试ADC,
就是采集一个光感的ADC变化,但是无论怎么弄采到的值都是一定的,
而另外一路温感采集的ADC值就是对的,我用电表量了下,两路都是有变化的,但是光感那一路就是采的不对
然后我把温感和光感的ADC对调,温感也出现原来光感一样的现象。

下面是我的初始化
void AdcInit(void)
{

        CLK_PeripheralClockConfig(CLK_Peripheral_ADC1, ENABLE); //使能ADC1的时钟
        /*/==Configures the sampling time for the selected ADC channel group.
                配置选中的ADC通道组的采样时间*/
        ADC_Init(ADC1,ADC_ConversionMode_Single,ADC_Resolution_8Bit,ADC_Prescaler_1);       
        ADC_SamplingTimeConfig(ADC1, ADC_Group_SlowChannels,ADC_SamplingTime_96Cycles);
        /*Enables or disables the selected ADC peripheral.*/
        /*使能或失能所选的ADC外设*/
        ADC_Cmd(ADC1, ENABLE);
       
        /*将三个adc输入脚配置为浮空输入模式*/
        GPIO_Init( ADC_PORT,TempAdc_PIN,GPIO_Mode_In_FL_No_IT  );
        //GPIO_Init( ADC_PORT,BatAdc_PIN,GPIO_Mode_In_PU_No_IT  );
        GPIO_Init( ADC_PORT,LightAdc_PIN,GPIO_Mode_In_FL_No_IT  );
}


两路ADC放在一个初始化里面在,应该没有问题啊


另外我度ADC的值是用的这个函数
uint16_t VREF_Value(uint16_t ADC_Channel)//测量内部参考电压VREF值
{
  uint16_t ADC_value=0;
                /*使能或失能所选的ADC通道*/
        ADC_ChannelCmd(ADC1, ADC_Channel, ENABLE);
        /*Starts ADC conversion, by software trigger.*/
        ADC_SoftwareStartConv(ADC1);
        while( ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC) == 0 );
        ADC_value=ADC_GetConversionValue(ADC1);
        ADC_ChannelCmd(ADC1, ADC_Channel, DISABLE);
        ADC_ClearFlag(ADC1,ADC_FLAG_EOC);
  return ADC_value;
}



不知道有什么问题,顺便说下  我用的是STM8L051,光感的通道是PB4,温感是PB7,

我看到文档里面说

A pull-up is applied to PB0 and PB4 during the reset phase. These two pins are input floating after reset release.

是不因为是PB4的原因,新手不懂,希望大神帮帮忙

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

34

帖子

0

精华

初级会员

Rank: 2

积分
130
金钱
130
注册时间
2016-1-2
在线时间
13 小时
发表于 2016-1-12 22:33:45 | 显示全部楼层
采集第1路时,第2路要DISBLE掉,反之采取第2路时,第1路要DISABLE
回复

使用道具 举报

6

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
153
金钱
153
注册时间
2015-11-21
在线时间
25 小时
 楼主| 发表于 2016-1-16 10:57:39 | 显示全部楼层
qhwan_love 发表于 2016-1-12 22:33
采集第1路时,第2路要DISBLE掉,反之采取第2路时,第1路要DISABLE

采集的值我全部存到一个变量中就没问题,分别存到三个变量中就有问题 ,不知道什么原因。难道是内存问题?
回复

使用道具 举报

4

主题

15

帖子

0

精华

新手入门

积分
5
金钱
5
注册时间
2016-1-26
在线时间
4 小时
发表于 2016-1-26 21:30:38 | 显示全部楼层
并不知道,帮顶一下
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-7-1 04:54

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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