由于不明原因Flash字库的头索引乱了,导致一直无法定位,重新计算了位置。
给show str函数加入长度限制。 Signed-off-by: kevin <kevin@lmve.net>
This commit is contained in:
+9
-4
@@ -223,7 +223,8 @@ uint8_t font_init(void)
|
||||
W25QXX_Read((uint8_t*)&ftinfo,FONTINFOADDR,sizeof(ftinfo));//读出ftinfo结构体数据
|
||||
if(ftinfo.fontok==0XAA)
|
||||
{
|
||||
ftinfo.f12addr+=1;
|
||||
ftinfo.f12addr=0x0042a929;
|
||||
ftinfo.f16addr=0x004b6d89;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -343,9 +344,9 @@ void LCD_ShowChar(uint16_t x,uint16_t y,uint8_t num,uint8_t size,uint16_t bg,uin
|
||||
//size:字体大小
|
||||
//*p:字符串起始地址
|
||||
|
||||
void LCD_ShowString(uint16_t x,uint16_t y,uint8_t *p,uint8_t size,uint16_t bg,uint16_t color)
|
||||
void LCD_ShowString(uint16_t x,uint16_t y,uint8_t *p,uint8_t size,uint16_t bg,uint16_t color,uint16_t len)
|
||||
{
|
||||
while(*p!='\0')
|
||||
while(len--)
|
||||
{
|
||||
|
||||
if(x>=lcddev.width)
|
||||
@@ -353,6 +354,10 @@ void LCD_ShowString(uint16_t x,uint16_t y,uint8_t *p,uint8_t size,uint16_t bg,ui
|
||||
x=0;
|
||||
y+=size;
|
||||
}
|
||||
if(*p=='\0')
|
||||
{
|
||||
return;
|
||||
}
|
||||
if(*p=='\r')
|
||||
{
|
||||
p++;
|
||||
@@ -371,7 +376,7 @@ void LCD_ShowString(uint16_t x,uint16_t y,uint8_t *p,uint8_t size,uint16_t bg,ui
|
||||
{
|
||||
Show_Font(x,y,p,size,bg,color);
|
||||
p++;
|
||||
x+=size;
|
||||
x+=size;
|
||||
}
|
||||
p++;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user