在蓝桥杯嵌入式官方给我们提供好了,LCD显示的底层源码,我们只需要,记住里面的API函数,会用这些函数就行。
源码位置
在官方给的资料中找到这个文件名字DK117_G4 Data Packet->开发板驱动文件里面就是所有的底层文件有两种类型,一种是基于HAL库的一种是标准库的。里面有LCD的底层驱动,还有IIC的底层驱动(软件模仿IIC驱动)。
fonts.h文件是底层文字库,这个也是必须需要的,要不然找不到文字的扫描显示。
文章来源地址https://www.toymoban.com/news/detail-484317.html
复制粘贴
在STM32CubeMX生成的文件下面建一个LCD文件夹,存放上面复制的三个文件。
打开Keil建一个分组名为LCD
刚刚加载进去的LCD文件,会报错因为文件名,不一样,需要这样修改
未修改时
修改好了
按照下面的顺序把头文件加载进去
加载完成点击OK就行了。
API接口
我为大家介绍一下LCD底层的函数
LCD初始化函数:
函数 | void LCD_Init(void) |
参数 | 无 |
返回值 | 无 |
作用 | 初始化LCD,这个很重要,在使用LCD之前一定要初始化 |
函数LCD_SetTextColor()
函数 | void LCD_SetTextColor(vu16 Color) |
参数 | 表示颜色 |
返回值 | 无 |
作用 | 这是文本颜色函数,参数是表示,在LCD显示字体颜色 |
函数LCD_SetBackColor()
函数 | void LCD_SetBackColor(vu16 Color) |
参数 | 表示颜色 |
返回值 | 无 |
作用 | 这是文本背景颜色函数,参数是表示,在LCD显示字体的背景色 |
函数LCD_Clear()
函数 | void LCD_Clear(vu16 Color) |
参数 | 表示颜色 |
返回值 | 无 |
作用 | 清除函数,可以清除全屏,参数是,清屏之后屏幕是什么颜色的 |
函数void LCD_DisplayStringLine(u8 Line, u8 *ptr);
函数 | void LCD_DisplayStringLine(u8 Line, u8 *ptr) |
参数 | Line:表示数据放在滴几行,一个由10行 ptr:在LCD显示的数据,仅支持字符串。 |
返回值 | 无 |
作用 | 在LCD固定位置显示数据 |
常用的函数不多,这几个是必用的函数。
我为大家重定义一下这个 LCD_DisplayStringLine()函数,可以实现变量的显示。
利用这个sprintf()函数,可以重新定义一下。
#include <stdarg.h>
//可以实时打印变量
void LcdSprintf(u8 Line,char *format,...)
{
char String[50];
va_list arg;
va_start(arg,format);
vsprintf(String,format,arg);
va_end(arg);
LCD_DisplayStringLine(Line,String);
}
主函数
int main(void)
{
/* USER CODE BEGIN 1 */
char table[]="cuwsxhiax";
/* USER CODE END 1 */
/* MCU Configuration--------------------------------------------------------*/
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
/* USER CODE BEGIN Init */
/* USER CODE END Init */
/* Configure the system clock */
SystemClock_Config();
/* USER CODE BEGIN SysInit */
/* USER CODE END SysInit */
/* Initialize all configured peripherals */
MX_GPIO_Init();
/* USER CODE BEGIN 2 */
LCD_Init(); //LCD初始化
LCD_Clear(Black);//清除屏幕,并且显示黑色
LCD_SetBackColor(Black);//设置字体背景色
LCD_SetTextColor(White);//设置字体颜色
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
u8 i=25;
LcdSprintf(Line3," i=%d",i);
LcdSprintf(Line4," sxhuaxjn");
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */
}
实验现象:
文章来源:https://www.toymoban.com/news/detail-484317.html
到了这里,关于蓝桥杯嵌入式基础模块——LCD显示器的基本使用(新板)STM32G431(HAL库开发)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!