初级会员

- 积分
- 53
- 金钱
- 53
- 注册时间
- 2012-4-12
- 在线时间
- 0 小时
|

楼主 |
发表于 2012-4-19 19:39:11
|
显示全部楼层
回复【2楼】正点原子:
---------------------------------
原子哥,我把代码改成如下,但是串口出来的全是0.00V。这是咋么回事,我该咋么改。
vu16 AD_Value[8];
u16 Volt1,Volt2,Volt3,Volt4,Volt5,Volt6,Volt7,Volt8;
u16 GetVolt(u16 advalue);
/*******************************************************************************
* Function Name: main
* Description : Main program
*******************************************************************************/
int main(void)
{
GPIO_Configuration();
USART_Configuration();
ADC_Configuration();
delay_init();
/* Infinite loop */
while (1)
{
Volt1 = GetVolt(AD_Value[0]); //8路采集回来的电压
Volt2 = GetVolt(AD_Value[1]);
Volt3 = GetVolt(AD_Value[2]);
Volt4 = GetVolt(AD_Value[3]);
Volt5 = GetVolt(AD_Value[4]);
Volt6 = GetVolt(AD_Value[5]);
Volt7 = GetVolt(AD_Value[6]);
Volt8 = GetVolt(AD_Value[7]);
delay_ms(500);
printf("Volt1=%4.2fV\r\n", Volt1);
delay_ms(500);
printf("Volt2=%4.2fV\r\n", Volt2);
delay_ms(500);
printf("Volt3=%4.2fV\r\n", Volt3);
delay_ms(500);
printf("Volt4=%4.2fV\r\n", Volt4);
delay_ms(500);
printf("Volt5=%4.2fV\r\n", Volt5);
delay_ms(500);
printf("Volt6=%4.2fV\r\n", Volt6);
delay_ms(500);
printf("Volt7=%4.2fV\r\n", Volt7);
delay_ms(500);
printf("Volt8=%4.2fV\r\n", Volt8);
delay_ms(500);
/*====LED-ON=======*/
GPIO_SetBits(GPIOD , GPIO_Pin_8);
GPIO_SetBits(GPIOD , GPIO_Pin_9);
GPIO_SetBits(GPIOD , GPIO_Pin_10);
GPIO_SetBits(GPIOD , GPIO_Pin_11);
delay_ms(500); /* delay 500ms */
/*====LED-OFF=======*/
GPIO_ResetBits(GPIOD , GPIO_Pin_8);
GPIO_ResetBits(GPIOD , GPIO_Pin_9);
GPIO_ResetBits(GPIOD , GPIO_Pin_10);
GPIO_ResetBits(GPIOD , GPIO_Pin_11);
delay_ms(500); /* delay 500ms */
}
}
u16 GetVolt(u16 advalue)
{
return (u16)(advalue / 4096)*3.3;
}
|
|