STM8L051F3 ADC问题

2019-07-19 21:11发布

测量AD时,在小于1V时,调试的时候,显示的值是正确的,但全速运行时显示的值就会扩大10倍,大于1V采样显示正常....例如我采量的电压是0.327V,采样时行调试的过程步进得到的是buf[0]=0x0C,buf[1]=0xCA,全速得到的是buf[0]=0x7F,buf[1]=0xFD,扩大了10倍
工作时程序:
  u16 adcx,adcx1;
  float Temp,Temp1;
  char buf[4],i;
  adcx=Get_Adc_Average(ADC_Channel_14,5);//AD测量传感器电压
GPIO_SetBits(GPIOC,GPIO_Pin_5);//关传感器  
   adcx1=Get_Adc_Average(ADC_Channel_16,5);//AD测量电池电压
  ADC_Cmd(ADC1, DISABLE);  
CLK_PeripheralClockConfig(CLK_Peripheral_ADC1,DISABLE);

   Temp=(float)adcx*(3.304/4096);
  Temp1=(float)adcx1*(3.304/4096);
  buf[0]=(unsigned int)(Temp*10000)>>8;
  buf[1]=(unsigned int)(Temp*10000);
  buf[2]=(unsigned int)(Temp1*10000)>>8;
  buf[3]=(unsigned int)(Temp1*10000);

  Uart_Init(115200);
  GPIO_SetBits(GPIOB,GPIO_Pin_0);//控制开485发送
  GPIO_ResetBits(GPIOD,GPIO_Pin_0); //控制开485供电

for (i=0;i<4;i++)
  {  USART_SendData8(USART1,buf);
    while (USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);

  }



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
18条回答
aiyy
1楼-- · 2019-07-21 04:45
 精彩回答 2  元偷偷看……
xuande
2楼-- · 2019-07-21 04:55
 精彩回答 2  元偷偷看……
aiyy
3楼-- · 2019-07-21 07:07
xuande 发表于 2016-8-4 17:01
根本不该有这个电阻,除非是构成分压关系。

有上拉电阻和没有电阻情况一样啊
aiyy
4楼-- · 2019-07-21 10:03
 精彩回答 2  元偷偷看……
xuande
5楼-- · 2019-07-21 14:58
aiyy 发表于 2016-8-4 17:41
网上有人说这个芯片的内部下拉有问题


这你也信。。。
那这芯片的AD纯属无用。

aiyy
6楼-- · 2019-07-21 19:56
xuande 发表于 2016-8-4 20:04
这你也信。。。
那这芯片的AD纯属无用。

已经知道原因了,原来是信号源的问题

一周热门 更多>