02、LCD屏
蓝桥杯正式比赛时会给参赛选手一个数据包,里面会有LCD屏相关配置文件和库函数,所以这里的例程相当于只是一个代码移植。具体LCD屏的学习可以参考火哥的视频。
我们打开之前的工程文件以及.ioc文件,具体参考这里。根据芯片数据手册,在cube中配置相关GPIO口,完成后点击GENERATE CODE。
打开选手数据包文件,找到HAL_06_LCD文件夹,将Inc文件夹中的lcd.h和fonts.h以及Src文件夹下的lcd.c共三个文件复制到工程文件路径下的bsp文件夹中(上一篇博客中咱自己创建的那个)。
在工程中将lcd.c文件添加进bsp文件中。
打开官方提供的LCD工程文件,在main.c中查找有关LCD的代码如下:
/* USER CODE BEGIN 2 */
LCD_Init(); //LCD初始化
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
LCD_Clear(Blue); //将屏幕清屏至蓝色
LCD_SetBackColor(Blue); //将屏幕背景设置为蓝色
LCD_SetTextColor(White); //字体设置为白色
LCD_DrawLine(120,0,320,Horizontal); //画线函数,这里根据指定位置画一条水平直线
LCD_DrawLine(0,160,240,Vertical); //画垂线
HAL_Delay(1000);
LCD_Clear(Blue);
LCD_DrawRect(70,210,100,100); //画矩形
HAL_Delay(1000);
LCD_Clear(Blue);
LCD_DrawCircle(120,160,50); //画圆
HAL_Delay(1000);
LCD_Clear(Blue);
LCD_DisplayStringLine(Line4 ,(unsigned char *)" Hello,world. "); ·//在指定行显示指定字符
HAL_Delay(1000);
LCD_SetBackColor(White);
LCD_DisplayStringLine(Line0,(unsigned char *)" ");
LCD_SetBackColor(Black);
LCD_DisplayStringLine(Line1,(unsigned char *)" ");
LCD_SetBackColor(Grey);
LCD_DisplayStringLine(Line2,(unsigned char *)" ");
LCD_SetBackColor(Blue);
LCD_DisplayStringLine(Line3,(unsigned char *)" ");
LCD_SetBackColor(Blue2);
LCD_DisplayStringLine(Line4,(unsigned char *)" ");
LCD_SetBackColor(Red);
LCD_DisplayStringLine(Line5,(unsigned char *)" ");
LCD_SetBackColor(Magenta);
LCD_DisplayStringLine(Line6,(unsigned char *)" ");
LCD_SetBackColor(Green);
LCD_DisplayStringLine(Line7,(unsigned char *)" ");
LCD_SetBackColor(Cyan);
LCD_DisplayStringLine(Line8,(unsigned char *)" ");
LCD_SetBackColor(Yellow);
LCD_DisplayStringLine(Line9,(unsigned char *)" ");
可以全部复制到咱的主函数中查看效果。实际比赛中,根据题目要求可以对背景以及字体进行设定,比如咱这里要在第五行显示“YELLOW:30”这一串字符,背景为白色,字体为黑色,则在main.c中代码如下:
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
Dis_LED(0x80);
HAL_Delay(500);
Dis_LED(0x00);
HAL_Delay(500);
char dis[20]; //定义一个内存为20的数组
uint i=30;
sprintf(dis,"YELLOW:%d",i); //将字符串传到指定数组中
LCD_DisplayStringLine(Line5,(unsigned char *)dis);
}
/* USER CODE END 3 */
这里要注意要包含一下lcd.h和stdio.h这两个头文件,后一个是因为sprintf这个函数要用到。
编译无误,下载完成!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)