PCtoLCD2002输出十六进制的字符数组,但头文件定义的函数只能识别二进制数组,怎样修改?

PCtoLCD2002输出十六进制的字符数组unsigned char,但头文件定义的函数只能识别二进制数组, 一个一个手改太麻烦,怎样修改头文件让它直接读取unsigned char?

void N5110::drawSprite(int x0,
                       int y0,
                       int nrows,
                       int ncols,
                       int *sprite)
{
    for (int i = 0; i < nrows; i++) {
        for (int j = 0 ; j < ncols ; j++) {

            int pixel = *((sprite+i*ncols)+j);
            setPixel(x0+j,y0+i, pixel);
        }
    }
}

可以用宏来替换,或者再定义一个函数包装下,转换参数类型,再调用实际的函数

点阵字体显示的函数,注意字库的采样顺序,一般的点阵字库都是从左到右,从上到下描点,示例如下:

/* 传入sprite为点阵字库CHAR型指针,nrows要被8整除,否则自己修改偏移 */
void N5110::drawSprite(int x0, int y0, int nrows, int ncols, char *sprite)
{
    int i = 0, j = 0;
    unsigned char pixel = 0;

    for (int i = 0; i < nrows; i++) 
    {
        for (int j = 0 ; j < ncols ; j++) 
        {
            pixel = *(sprite + (i*ncols+j)/8);                  /* 一个字节8个点 */
            if((pixel & (0x80 >> ((i*ncols+j) % 8))) != 0)      /* 从左到右描点 */
            {
        setPixel(x0+j,y0+i, 1);                                     /* 画点 */
      }
      else
      {
        setPixel(x0+j,y0+i, 0);                                     /* 画空白 */
      }
        }
    }
}

在参数一传进来的时候自己加一个数据类型转换就行了吧,根据自己的需要改就行了