移植正点原子F407开发板LCD显示程序时,LCD显示字符串函数报错

移植正点原子F407开发板LCD显示程序时,LCD显示字符串函数报错 argument of type "u8" is incompatible with parameter of type "u8 *"
void LCD_Task()
{
    sprintf((char*)lcd_id,"%d",Coin_Num);
    if (Sys_Mode == 0)
    {    
        LCD_Clear(WHITE);    
        POINT_COLOR=BLACK;      
        LCD_ShowString(30,40,210,24,24,"GOLD COIN");    
        LCD_ShowString(30,70,200,16,16,"NUM : ");
        LCD_ShowString(30,110,200,16,16,lcd_id);                     
  }   
    
    sprintf((char*)lcd_id,"%d",Big_Num);
    if (Sys_Mode == 1)
    {
        LCD_Clear(WHITE);    
        POINT_COLOR=BLACK;      
        LCD_ShowString(30,40,210,24,24,"Bullet");    
        LCD_ShowString(30,70,200,16,16,"Big : ");
        LCD_ShowString(30,110,200,16,16,lcd_id);            
    }    
}
运行结果及报错内容

代码中 LCD_ShowString(30,110,200,16,16,lcd_id); 均报错为 argument of type "u8" is incompatible with parameter of type "u8 *"

下面是LCD_ShowString函数源码,丝毫未动
void LCD_ShowString(u16 x, u16 y, u16 width, u16 height, u8 size, u8 *p)
{
    u8 x0 = x;
    width += x;
    height += y;

    while ((*p <= '~') && (*p >= ' '))   //判断是不是非法字符!
    {
        if (x >= width)
        {
            x = x0;
            y += size;
        }

        if (y >= height)break; //退出

        LCD_ShowChar(x, y, *p, size, 0);
        x += size / 2;
        p++;
    }  
}

u8=unsigned char 如果没有包含再定义头文件,可用unsigned char代替u8即可

找一下lcd_id这个变量的定义,估计这个是u8类型的,如果这样,前面那个sprintf运行的时候也会出问题的,编译没报错是因为做了强制类型转换,但这个转换是有问题的。
lcd_id应该是个u8类型的数组才行。