6.2 WY简易显示函数

 

 

  1.  

    //点阵数据显示 - 数据高位在前 (字库文字的显示格式)

    /**

     * @brief 字符字体数据排置方式

     */

    #define FONT_DATA_ARRAY_TYPE_W    (0)

    #define FONT_DATA_ARRAY_TYPE_Y    (1)

    /**

     * @brief 字符 点阵数据显示

     * @param pBits 字符数据的缓存

     * @param x_y 坐标

     * @param width 字符宽度

     * @param high  字符高度

     * @param ft_color  字体颜色

     * @param bg_color  背景颜色

     * @param _type 排置方式

     */

    void fontDisplay_DZ(unsigned char *pBits, unsigned short x, unsigned short y, unsigned short width, unsigned short high,

            unsigned short ft_color, unsigned short bg_color, unsigned char _type)

    {

        unsigned int i, j, k, cnt = 0;

        unsigned char temp;

        unsigned char multiple = 0;

        unsigned short disp_x, disp_y = 0;

     

        //竖置横排显示Y

        if (FONT_DATA_ARRAY_TYPE_Y == _type) {

            multiple = ((high + 7) >> 3);

            for (i = 0; i < multiple; i++)

            {

                for (j = 0; j < width; j++)

                {

                    temp = pBits[cnt++];

                    for (k = 0; k < 8; k++)

                    {

                        disp_x = (x + j);

                        disp_y = (y + k + (i * 8));

                        if ( ((temp >> k) & 0x01) == 0 ) //bg

                        {

                            /* 显示一个像素点 */

                            LCD_Fast_DrawPoint(disp_x, disp_y, bg_color);  //0xFFFF = WHITE

                        }

                        else //font

                        {

                            /* 显示一个像素点 */

                            LCD_Fast_DrawPoint(disp_x, disp_y, ft_color);  //0x0000 = BLACK

                        }

                    }

                }

            }

        }

        //横置横排显示W

        else if (FONT_DATA_ARRAY_TYPE_W == _type) {

            multiple = ((width + 7) >> 3);

            for (i = 0; i < high; i++)

            {

                for (j = 0; j < multiple; j++)

                {

                    temp = pBits[cnt++];

                    for (k = 0; k < 8; k++)

                    {

                        disp_x = (x + k + (j * 8));

                        disp_y = (y + i);

                        if ( ((temp << k) & 0x80) == 0 ) //bg

                        {

                            /* 显示一个像素点 */

                            LCD_Fast_DrawPoint(disp_x, disp_y, bg_color);

                        }

                        else //font

                        {

                            /* 显示一个像素点 */

                            LCD_Fast_DrawPoint(disp_x, disp_y, ft_color);

                        }

                    }

                }

            }

        }

    }


     

    /**

     * @brief 测试验证 lcd 在任意坐标画点函数

     */

    void test_lcd_draw_point(void)

    {

        for (unsigned char x = 0; x < 12; x++)

        {

            for (unsigned char y = 0; y < 24; y++)

            {

                /* 显示一个像素点 */

                LCD_Fast_DrawPoint(x, y, 0xFFFF);

            }

        }

    }

     

下一页:显示函数
    • 联系电话

    • 0755—83453881
    • 服务时间

    • 周一至周五 9:00-18:00
    • 高通GT-HMI交流群