void OLED_ShowString(u8 x,u8 y,const u8 *p,u8 size)
{
while((*p<='~')&&(*p>=' '))//判斷是不是非法字符!
{
if(x>(128-(size/2)))// 以下幾處看不懂,麻煩盡量詳盡一點解釋
{x=0;y+=size;}
if(y>(64-size))
{y=x=0;OLED_Clear();}
OLED_ShowChar(x,y,*p,size,1);
x+=size/2;
p++;
}
}
uj5u.com熱心網友回復:
void OLED_ShowString(u8 x,u8 y,const u8 *p,u8 size){
while((*p<='~')&&(*p>=' '))//判斷是不是非法字符!
{
if(x>(128-(size/2)))// 以下幾處看不懂,麻煩盡量詳盡一點解釋 判斷X坐標是在一行結束時是否可以寫下一個ASCII碼字符
{x=0;y+=size;} //如果一行寫不下就另起一行。SIZE是一個字符的大小。比如 16*16;32*32之類的。
if(y>(64-size)) //如果字符顯符是最后一行。
{y=x=0;OLED_Clear();}//則清屏并將x,y值賦0到螢屏坐標的原點。
OLED_ShowChar(x,y,*p,size,1); //在當前坐標(x,y)處顯示一個字符(*p)。至于最后一個引數“1”有可能是表示是覆寫顯示還是疊加顯示。沒有這個函式的原型,所以不清楚。
x+=size/2; //顯示原一個字符,坐標加上一個字符的寬度準備下一個字符的坐標。
p++;//讀取下一個字符。
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/44031.html
標籤:單片機/工控
上一篇:eMRAM究竟是融合還是替代?
