我们先分析下官方给的范例关于LCD的驱动函数
void LCD_GLASS_Init(void)//使能LCD时钟,并设置相应参数
void LCD_contrast()//通过按键调节对比度
void LCD_bar()//将bar值写道LCD缓存中
static void LCD_Conv_Char_Seg(uint8_t* c,bool point,bool column, uint8_t* digit)//将ASCII码转换为LCD显示,第一个参数是要显示的字符比如‘c’,第二个参数是设置POINT是否显示,第三个参数是设置COLUMN是否显示,第四个参数不是很懂
void LCD_GLASS_WriteChar(uint8_t* ch, bool point, bool column, uint8_t position)//将字符写入LCD缓存,和上面参数大体一致
void LCD_GLASS_DisplayString(uint8_t* ptr)//显示字符串,最大只能显示7个,范例:LCD_GLASS_DisplayString("Error");
void LCD_GLASS_DisplayStrDeci(uint16_t* ptr)//能够显示有小数点的字符串
void LCD_GLASS_Clear(void)//清除LCD缓冲区
void LCD_GLASS_ScrollSentence(uint8_t* ptr, uint16_t nScroll, uint16_t ScrollSpeed)//字符串句子移动模式显示,使用前需要清除LCD缓冲区,第一个参数是显示的字符串,第二个参数是显示几次,第三个是速度,单位是毫秒,范例:LCD_GLASS_ScrollSentence(" ** STM8L-DISCOVERY **",1,SCROLL_SPEED);
还有一些常用字符声明,比如A-Z,0-9,一些其他特殊字符比如:
/* code for '? character */
#define C_UMAP 0x6081
/* code for 'm' character */
#define C_mMap 0xb210
/* code for 'n' character */
#define C_nMap 0x2210
/* constant code for '*' character */
#define star 0xA0D7
/* constant code for '-' character */
#define C_minus 0xA000
#define DOT 0x8000 /* for add decimal point in string */也就是小数点.
#define DOUBLE_DOT 0x4000 /* for add decimal point in string */冒号
/* Macros used for set/reset bar LCD bar */四个BAR宏定义
#define BAR0_ON t_bar[0] |= 0x80
#define BAR0_OFF t_bar[0] &= ~0x80
#define BAR1_ON t_bar[1] |= 0x08
#define BAR1_OFF t_bar[1] &= ~0x08
#define BAR2_ON t_bar[0] |= 0x20
#define BAR2_OFF t_bar[0] &= ~0x20
#define BAR3_ON t_bar[1] |= 0x02
#define BAR3_OFF t_bar[1] &= ~0x02
我们编写下面一个LCD测试函数
void main(void)
{
uint16_t tab1[3],tab2[5];
/* 初始化*/
LCD_GLASS_Init();
//滚动显示字符串
LCD_GLASS_ScrollSentence("**STM8L LCD TEST** EEFOCUS",1,100);
//显示小数
delay_ms(0XFFF);
//LCD_GLASS_Clear();
BAR0_ON;
tab1[0]='1';
tab1[0] |= DOT;
tab1[1]='2';
tab1[2]='V';
LCD_GLASS_DisplayStrDeci(tab1);
//显示:
delay_ms(0XFFFF);
//LCD_GLASS_Clear();
BAR1_ON;
tab2[0]='1';
tab2[1]='7';
tab2[1] |= DOUBLE_DOT;
tab2[2]='0';
tab2[3]='2';
tab2[4]=' ';
LCD_GLASS_DisplayStrDeci(tab2);
while (1)
{
}
}
上一篇:STM8L探索套件学习笔记-CLK时钟控制(四)
下一篇:STM8L探索套件学习笔记-EXTI外部中断(二)
推荐阅读最新更新时间:2024-03-16 14:41
设计资源 培训 开发板 精华推荐
- Allegro MicroSystems 在 2024 年德国慕尼黑电子展上推出先进的磁性和电感式位置感测解决方案
- 左手车钥匙,右手活体检测雷达,UWB上车势在必行!
- 狂飙十年,国产CIS挤上牌桌
- 神盾短刀电池+雷神EM-i超级电混,吉利新能源甩出了两张“王炸”
- 浅谈功能安全之故障(fault),错误(error),失效(failure)
- 智能汽车2.0周期,这几大核心产业链迎来重大机会!
- 美日研发新型电池,宁德时代面临挑战?中国新能源电池产业如何应对?
- Rambus推出业界首款HBM 4控制器IP:背后有哪些技术细节?
- 村田推出高精度汽车用6轴惯性传感器
- 福特获得预充电报警专利 有助于节约成本和应对紧急情况