山外K60 首次中文显示成功记录

首先是用户自定义代码部分

void main()
{
       
     Site_t site;    
     
     LCD_init();            //初始化     
    
     site.x = 3;    
     site.y = 5;    
     LCD_str(site, "VCAN", BLUE, RED);               //英文显示  
     site.x = 3;
     site.y = 15;
     LCD_FStr_CH(site, vcan_str, 4, BLUE, RED);         //中文显示
     
}

接下来是字符的生成和存储,例程默认存放在VCAN_ASCII里,

unsigned char vcan_str[4*16*2] =
{
    /* 山 */
    0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x21,0x08,0x21,0x08,0x21,0x08,0x21,0x08,
    0x21,0x08,0x21,0x08,0x21,0x08,0x21,0x08,0x21,0x08,0x3F,0xF8,0x00,0x08,0x00,0x00,
    /* 外 */
    0x10,0x40,0x10,0x40,0x10,0x40,0x10,0x40,0x3E,0x40,0x22,0x60,0x42,0x50,0x42,0x48,
    0xA4,0x44,0x14,0x44,0x08,0x40,0x08,0x40,0x10,0x40,0x20,0x40,0x40,0x40,0x80,0x40,
    /* 论 */
    0x00,0x40,0x20,0x40,0x10,0xA0,0x10,0xA0,0x01,0x10,0x02,0x08,0xF4,0x06,0x11,0x10,
    0x11,0x20,0x11,0x40,0x11,0x80,0x11,0x00,0x15,0x04,0x19,0x04,0x10,0xFC,0x00,0x00,
    /* 坛 */
    0x10,0x00,0x10,0x00,0x11,0xFC,0x10,0x00,0x10,0x00,0xFC,0x00,0x13,0xFE,0x10,0x20,
    0x10,0x20,0x10,0x40,0x10,0x40,0x1C,0x88,0xE1,0x04,0x43,0xFE,0x01,0x02,0x00,0x00,
};

最后是所需要调用的库函数,

LCD初始化函数,位于Board的VCAN_LCD函数库里

void LCD_init(void)
{
    Site_t site = {0, 0};
    Size_t size ;

    LCD_INIT();                             //初始化LCD

    //LCD_SET_DIR(LCD_DIR+1);

    //由于初始化的时候进行 屏幕方向 选择,因而初始化完成后,才获取宽高
    size.W = LCD_W;
    size.H = LCD_H;

    LCD_rectangle(site, size, BCOLOUR);     //初始化背景
}

LCD英文字符串显示,位于Board的VCAN_LCD函数库里

void LCD_str(Site_t site, uint8 *Str, uint16 Color, uint16 bkColor)
{
#define MAX_CHAR_POSX (LCD_W-8)
#define MAX_CHAR_POSY (LCD_H-16)
    while(*Str != '\0')
    {
        if(site.x > MAX_CHAR_POSX )
        {
            //换行
            site.x = 0;
            site.y += 16;
        }
        if(site.y > MAX_CHAR_POSY )
        {
            //一屏
            site.y = 0;
            site.x = 0;
        }

        LCD_char(site, *Str, Color, bkColor);
        site.x += 8;
        Str ++ ;
    }
#undef MAX_CHAR_POSX
#undef MAX_CHAR_POSY
}

LCD中文字符串显示,位于Board的VCAN_LCD_CH函数库里

void LCD_FStr_CH (Site_t site,const uint8 *str,uint16 num,uint16 Color,uint16 bkColor)
{
    while(num--)
    {
        if(site.x>(LCD_W-16))
        {
             /*换行*/
            site.x =0;
            site.y +=LCD_CH_H;
        }
        if(site.y >(LCD_H-LCD_CH_W))
        {
             /*重新归零*/
             site.y =0;
             site.x =0;
        }
        LCD_FChar_CH(site,str,Color,bkColor);
        str += LCD_CH_SIZE ;
        site.x += LCD_CH_W ;
    }
}

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值