蓝桥杯嵌入式——LCD

蓝桥杯嵌入式——LCD

    • 配置
    • 程序编写

配置

  1. cubeMX
    根据下图,将对应的引脚设置为OutPut
  2. 电路原理图
    蓝桥杯嵌入式——LCD_第1张图片
  3. 导入 LCD 相关文件,将下面的文件发到 bsp 文件夹中。
    蓝桥杯嵌入式——LCD_第2张图片蓝桥杯嵌入式——LCD_第3张图片

程序编写

  1. 初始化
    在main函数里,/* USER CODE BEGIN 2 * /和/ * USER CODE END 2 */之间初始化LCD.
//初始化LCD
LCD_Init();
LCD_Clear(Black);//清除为白色
LCD_SetBackColor(Black);//黑色背景
LCD_SetTextColor(White);//白色字体
  1. 常用函数
void LCD_DisplayChar(u8 Line, u16 Column, u8 Ascii);//输出字符
void LCD_DisplayStringLine(u8 Line, u8 *ptr);//输出字符串

上面是用来显示字符,下面是用来显示字符串的。不管是显示字符还是字符串,都需要指定显示的行数。从Line0到Line9都是可用的。显示字符时还需要指定列。LCD一个字符为24x16,LCD屏幕的宽度是范围是0~319,一个字符的占到了16,一行可以显示20个字符,因此将一个字符a显示在第—行第一列需要这么写:

void LCD_DisplayChar(Line0, 319 - 16, 'a');

空白的部分也可以用空格表示(不要用Tab键,本人用Tab背景色会有点奇怪,一行可以显示20个字符)

void LCD_DisplayStringLine(Line2, (uint8_t *)"   hello   ");
  1. 格式化输出
    导入“stdio.h”,使用sprintf();
#include 

char buf[30] ;
sprintf((char *) buf,"%02d : %02d : %02d" ,hour, min,sec);
LCD_DisplayStringLine(Line5, (uint8_t *)buf);

常用的格式字符

  • 输出字符:%c
  • 输出字符串:%s
  • 输出整型:%d
  • 输出浮点数:%f

输出进制数

  • 带先导的八进制:%#o
  • 不带先导的八进制:%o
  • 带先导的十六进制:%#x
  • 不带先导的十六进制(小写):%x
  • 不带先导的十六进制(大写):%X

特定格式

  • 自定添0:%02d
  • 指定小数位:%.2f
  • 左对齐:%-d
  • 百分号:%%

在main.c文件中编写处理LCD切换页面的函数(与按键配合,改变view的值)

void disp_proc(void)
{
	if(view == 0)
	{
		char text[30];
		sprintf(text,"      Date     ");
		LCD_DisplayStringLine(Line1,(uint8_t *)text);
	}
	if(view == 1)
	{
		char text[30];
		sprintf(text,"       Para     ");
		LCD_DisplayStringLine(Line1,(uint8_t *)text);
	}
	if(view == 2)
	{
	}
}

你可能感兴趣的:(蓝桥杯嵌入式,单片机,c语言,学习,蓝桥杯)