@@ -972,9 +972,11 @@ void OLED_Ascii(unsigned char x,unsigned char y,unsigned char size,char chr,unsi
|
||||
|
||||
}
|
||||
|
||||
void OLED_Str(unsigned char x,unsigned char y,unsigned char size,char *str,unsigned char type)
|
||||
void OLED_Str(unsigned char x,unsigned char y,unsigned char size,char *str,unsigned char lenconst,unsigned char type)
|
||||
{
|
||||
unsigned char size2;
|
||||
unsigned char tempx=x;
|
||||
unsigned char templenstard=1;
|
||||
switch(size)
|
||||
{
|
||||
case 8:
|
||||
@@ -990,21 +992,34 @@ void OLED_Str(unsigned char x,unsigned char y,unsigned char size,char *str,unsig
|
||||
|
||||
while(*str!='\0')
|
||||
{
|
||||
if(x+size2>=X_WIDTH)
|
||||
|
||||
if((x+size2>=X_WIDTH)||(*str=='\n'))
|
||||
{
|
||||
if(lenconst!=0)
|
||||
{
|
||||
if(templenstard>=lenconst)
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
templenstard++;
|
||||
y+=size;
|
||||
if(y>=Y_WIDTH)
|
||||
{
|
||||
y=0;
|
||||
//y=0;
|
||||
return;
|
||||
}
|
||||
x=0;
|
||||
x=tempx;
|
||||
}else
|
||||
{
|
||||
OLED_Ascii(x,y,size,*str,type);
|
||||
x+=size2;
|
||||
}
|
||||
|
||||
OLED_Ascii(x,y,size,*str,type);
|
||||
|
||||
|
||||
str++;
|
||||
|
||||
x+=size2;
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1012,6 +1027,27 @@ void OLED_Str(unsigned char x,unsigned char y,unsigned char size,char *str,unsig
|
||||
|
||||
}
|
||||
|
||||
void OLED_Str_list(unsigned char x,unsigned char y,unsigned char size,char *str,unsigned char lenstard,unsigned char lenconst,unsigned char type)
|
||||
{
|
||||
unsigned char templenstard=0;
|
||||
while(templenstard!=lenstard)//跳转到指定行
|
||||
{
|
||||
|
||||
switch(*str)
|
||||
{
|
||||
case '\n': //如果是回车 行加加
|
||||
templenstard++;
|
||||
break;
|
||||
case '\0': //如果字符串提前结束 报错 直接返回
|
||||
return;
|
||||
}
|
||||
|
||||
str++;
|
||||
}
|
||||
OLED_Str(x,y,size,str,lenconst,type);
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
几何绘图
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user