本篇文章是在蓝桥杯嵌入式-任务调度器完整的项目下补充完成的。如果需要代码,直接看第四部分的下载链接。

一、STM32CubMX配置

注:因为赛点资源包提供了LCD库相关的内容,其中包含了LCD所需要配置的引脚内容,因此不用进行STM32CubMX配置。

1.1 资源包相关内容引用

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、keil5配置

2.1 添加LCD库

在这里插入图片描述
在这里插入图片描述

三、代码方面

3.1 main.c

3.1.1 修改位置

在这里插入图片描述

3.1.2 对应代码
  LCD_Init();
  LCD_Clear(Black);
  LCD_SetBackColor(Black);
  LCD_SetTextColor(White);

3.2 task.h

3.2.1 修改位置

在这里插入图片描述

3.1.2 对应代码
#include "lcd.h"

3.3 task.c

3.3.1 修改位置

在这里插入图片描述

3.3.2 对应代码
void lcddisplay(uint8_t Line, char* format, ...)
{
    char string[21]; // 每行最多显示20个字符,加上结束符
    va_list arg;
    va_start(arg, format);
    vsprintf(string, format, arg);
    va_end(arg);
    LCD_DisplayStringLine(Line, (u8*)string);
}

void lcd_proc()
{
	static uint8_t num = 0;
	lcddisplay(Line1, " Hello World %d",num++);//不显示的位置用空格
}
         
//task_t scheduler_t[] =
//{
//    {lcd_proc, 100, 0}
//};

四、其他

4.1 资源包具体路径

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.2 调用库产生的警报消除

在这里插入图片描述
在这里插入图片描述

4.3 若编译没问题,keil目录下.h文件的移除(美观)

在这里插入图片描述

4.4 函数知识点补充

lcddisplay()这个函数所显示的字符+空格数量需要计算刚好等于20.
例如:在这里插入图片描述
在这个题目中:显示部分代码应为

lcddisplay(Line1, "       GOODS        ");//7空格+5字符+8空格
lcddisplay(Line3, "     R37:%.2fV      ",1.25);//5空格+9字符+6空格
lcddisplay(Line4, "     R38:%.2fV      ",2.36);//5空格+9字符+6空格

如果空格+字符数量不满20.可能会在使用过程中产生一些错误。

4.5 完整代码下载

资料下载:https://pan.quark.cn/s/08f8e6116512

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐