正点原子探索者开发板自定义汉字显示取模方式及底层函数

本文主要是介绍正点原子探索者开发板自定义汉字显示取模方式及底层函数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这里写图片描述

汉字显示底层驱动函数

//在LCD上的(x,y)处画点
//color:点的颜色
void LCD_Draw_Point(u16 x,u16 y,u16 color)
{u16 temp;temp=POINT_COLOR;POINT_COLOR=color;LCD_DrawPoint(x,y);POINT_COLOR=temp;
}
//在指定位置 显示1个16*16的汉字
//(x,y):汉字显示的位置
//index:tfont数组里面的第几个汉字
//color:这个汉字的颜色
void Test_Show_CH_Font16(u16 x,u16 y,u8 index,u16 color)
{                   u8 temp,t,t1;u16 y0=y;                  for(t=0;t<32;t++)//每个16*16的汉字点阵 有32个字节{   if(t<16)temp=tfont16[index*2][t];      //前16个字节else temp=tfont16[index*2+1][t-16];    //后16个字节                           for(t1=0;t1<8;t1++){if(temp&0x80)LCD_Draw_Point(x,y,color);//画实心点else LCD_Draw_Point(x,y,BACK_COLOR);   //画空白点(使用背景色)temp<<=1;y++;if((y-y0)==16){y=y0;x++;break;}}    }          
}
//在指定位置 显示1个24*24的汉字
//(x,y):汉字显示的位置
//index:tfont数组里面的第几个汉字
//color:这个汉字的颜色
void Test_Show_CH_Font24(u16 x,u16 y,u8 index,u16 color)
{                   u8 temp,t,t1;u16 y0=y;                  for(t=0;t<72;t++)//每个24*24的汉字点阵 有72个字节{   if(t<24)temp=tfont24[index*3][t];           //前24个字节else if(t<48)temp=tfont24[index*3+1][t-24]; //中24个字节                              else temp=tfont24[index*3+2][t-48];         //后24个字节for(t1=0;t1<8;t1++){if(temp&0x80)LCD_Draw_Point(x,y,color);//画实心点else LCD_Draw_Point(x,y,BACK_COLOR);   //画空白点(使用背景色)temp<<=1;y++;if((y-y0)==24){y=y0;x++;break;}}    }          
}
//测试2个汉字显示函数
void TEST_FONT(void)
{u8 t;u8 x,x1;x=x1=50;for(t=0;t<7;t++)//6个汉字{Test_Show_CH_Font16(x ,50,t,RED);Test_Show_CH_Font24(x1,70,t,RED);x+=16;x1+=24;}
}

这篇关于正点原子探索者开发板自定义汉字显示取模方式及底层函数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/439160

相关文章

Java枚举类实现Key-Value映射的多种实现方式

《Java枚举类实现Key-Value映射的多种实现方式》在Java开发中,枚举(Enum)是一种特殊的类,本文将详细介绍Java枚举类实现key-value映射的多种方式,有需要的小伙伴可以根据需要... 目录前言一、基础实现方式1.1 为枚举添加属性和构造方法二、http://www.cppcns.co

Kotlin 作用域函数apply、let、run、with、also使用指南

《Kotlin作用域函数apply、let、run、with、also使用指南》在Kotlin开发中,作用域函数(ScopeFunctions)是一组能让代码更简洁、更函数式的高阶函数,本文将... 目录一、引言:为什么需要作用域函数?二、作用域函China编程数详解1. apply:对象配置的 “流式构建器”最

使用Sentinel自定义返回和实现区分来源方式

《使用Sentinel自定义返回和实现区分来源方式》:本文主要介绍使用Sentinel自定义返回和实现区分来源方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Sentinel自定义返回和实现区分来源1. 自定义错误返回2. 实现区分来源总结Sentinel自定

Springboot处理跨域的实现方式(附Demo)

《Springboot处理跨域的实现方式(附Demo)》:本文主要介绍Springboot处理跨域的实现方式(附Demo),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录Springboot处理跨域的方式1. 基本知识2. @CrossOrigin3. 全局跨域设置4.

springboot security使用jwt认证方式

《springbootsecurity使用jwt认证方式》:本文主要介绍springbootsecurity使用jwt认证方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录前言代码示例依赖定义mapper定义用户信息的实体beansecurity相关的类提供登录接口测试提供一

springboot security之前后端分离配置方式

《springbootsecurity之前后端分离配置方式》:本文主要介绍springbootsecurity之前后端分离配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的... 目录前言自定义配置认证失败自定义处理登录相关接口匿名访问前置文章总结前言spring boot secu

SpringBoot中封装Cors自动配置方式

《SpringBoot中封装Cors自动配置方式》:本文主要介绍SpringBoot中封装Cors自动配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录SpringBoot封装Cors自动配置背景实现步骤1. 创建 GlobalCorsProperties

Flutter打包APK的几种方式小结

《Flutter打包APK的几种方式小结》Flutter打包不同于RN,Flutter可以在AndroidStudio里编写Flutter代码并最终打包为APK,本篇主要阐述涉及到的几种打包方式,通... 目录前言1. android原生打包APK方式2. Flutter通过原生工程打包方式3. Futte

在C#中调用Python代码的两种实现方式

《在C#中调用Python代码的两种实现方式》:本文主要介绍在C#中调用Python代码的两种实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C#调用python代码的方式1. 使用 Python.NET2. 使用外部进程调用 Python 脚本总结C#调

Android Kotlin 高阶函数详解及其在协程中的应用小结

《AndroidKotlin高阶函数详解及其在协程中的应用小结》高阶函数是Kotlin中的一个重要特性,它能够将函数作为一等公民(First-ClassCitizen),使得代码更加简洁、灵活和可... 目录1. 引言2. 什么是高阶函数?3. 高阶函数的基础用法3.1 传递函数作为参数3.2 Lambda