由于不明原因Flash字库的头索引乱了,导致一直无法定位,重新计算了位置。

给show str函数加入长度限制。

Signed-off-by: kevin <kevin@lmve.net>
This commit is contained in:
2021-03-11 17:22:18 +08:00
parent 04b4a6fd02
commit 1fc2613ea7
46 changed files with 13173 additions and 6703 deletions
+9 -4
View File
@@ -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++;