#include "sys.h"
#include "delay.h"
#include "oled.h"
#include "usart.h"
#include "adc.h"
extern u16 adc_buf[10][2];
u32 adc_buf0[2];
int main(void)
{
u8 i;
u8 j;
u8 k;
float temp[2];
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2
delay_init(); //初始化延时函数
ADC1_Init(); //初始化ADC
OLED_Init(); //初始化OLED
OLED_ShowString(0,0,"LIGHT1:",16);
OLED_ShowString(0,20, "LIGHT2:",16);
OLED_ShowString(0,40,"LIGHT3:",16);
//OLED_ShowString(0,52,"ASCII:",12);
// OLED_ShowString(64,52,"CODE:",12);
OLED_Refresh_Gram(); //更新显示到OLED
while(1)
{
adc_buf0[0] = 0;
for(i=0;i<2;i++)
{
adc_buf0[i] = 0;
for(j=0;j<10;j++)
{
adc_buf0[i]+= adc_buf[j][i];
};
adc_buf0[i] = adc_buf0[i]/10;
};
for(k=0;k<2;k++)
{
temp[k] = adc_buf0[k]*3.3/4096;
//OLED_ShowNum(70,20*k,adc_buf0[k],4,16); //显示ADCC采样后的原始值
i=temp[k]; //赋值整数部分给adcx变量,因为adcx为u16整形
OLED_ShowNum(70,20*k,i,1,16); //显示电压值的整数部分,3.1111的话,这里就是显示3
temp[k]-=i; //把已经显示的整数部分去掉,留下小数部分,比如3.1111-3=0.1111
temp[k]*=1000; //小数部分乘以1000,例如:0.1111就转换为111.1,相当于保留三位小数。
OLED_ShowNum(90,20*k,temp[k],3,16); //显示小数部分(前面转换为了整形显示),这里显示的就是111.
OLED_Refresh_Gram(); //更新显示到OLED
delay_ms(500);
};
/*LCD_ShowxNum(264,170,ADC1ConvertedVoltage[1],4,16,0); //显示ADCC采样后的原始值
i=temp2; //赋值整数部分给adcx变量,因为adcx为u16整形
LCD_ShowxNum(264,190,i,1,16,0); //显示电压值的整数部分,3.1111的话,这里就是显示3
temp2-=i; //把已经显示的整数部分去掉,留下小数部分,比如3.1111-3=0.1111
temp2*=1000; //小数部分乘以1000,例如:0.1111就转换为111.1,相当于保留三位小数。
LCD_ShowxNum(280,190,temp2,3,16,0X80); //显示小数部分(前面转换为了整形显示),这里显示的就是111.
*/
}
}
|