|
/****************************************************************
* void OLED_ShowFNum() 显示任意浮点数,参考中景园OLED_ShowNum()函数
* x , y : 起点坐标
* Fnum : 要显示的浮点数
***************************************************************/
void OLED_ShowFNum(rt_uint8_t x,rt_uint8_t y,float Fnum)
{
char Data[1]= " "; //创建目标数组,用来存放转换后的字符数据
sprintf(Data,"%.1f",Fnum); //保留小数点后1位小数,打印到Data数组中
OLED_ShowStr(x,y,Data); //调用OLED字符串显示函数,在OLED屏上显示
}
OLED_ShowStr函数
/* **********************************
* x,y--起始点坐标 ;ch【】--为要显示的字符 ;TextSize--字符大小(1:6*8 ;2:8*16)
* ***********************************/
void OLED_ShowStr(rt_uint8_t x,rt_uint8_t y,char ch[],unsigned char TextSize)
{
rt_uint8_t c=0;
rt_uint8_t i=0;
rt_uint8_t j= 0;
switch(TextSize)
{
case 1:
{
while(ch[j] != '\0')
{
c = ch[j] - 32;
if(x > 126)
{
x = 0;
y++;
}
OLED_SetPos(x,y);
for(i=0;i<6;i++)
WriteDat(iic_1,F6x8[c][i]);
x += 6;
j++;
}
}break;
case 2:
{
while(ch[j] != '\0')
{
c = ch[j] - 32;
if(x > 126)
{
x = 0;
y++;
}
OLED_SetPos(x,y);
for(i=0;i<8;i++)
WriteDat(iic_1,F8X16[c*16+i]);
OLED_SetPos(x,y+1);
for(i=8;i<16;i++)
WriteDat(iic_1,F8X16[c*16+i]);
x +=8;
j++;
}
}break;
}
}
|
|