蓝桥杯嵌入式LCD高亮显示
以下内容仅代表个人观点,基于有限的经验和认知整理而成。每个人的视角和背景不同,观点难免存在差异或局限。若存在疏漏或不足之处,欢迎指正与探讨,但请多一份包容。希望通过这些思考,能激发更多有益的交流。——观点无高下,讨论有温度高亮显示在蓝桥杯嵌入式第9、10届均出现了,未来也很有可能会出现,所以还是很有必要学习一下的。//%x输出十六进制%d十进制整数 %f十进制浮点数 %c单个字符//局部刷新 在第
·
前言
以下内容仅代表个人观点,基于有限的经验和认知整理而成。每个人的视角和背景不同,观点难免存在差异或局限。若存在疏漏或不足之处,欢迎指正与探讨,但请多一份包容。希望通过这些思考,能激发更多有益的交流。
——
观点无高下,讨论有温度
高亮显示在蓝桥杯嵌入式第9、10届均出现了,未来也很有可能会出现,所以还是很有必要学习一下的。
两种高亮显示
1、背景高亮
2、文本高亮
介绍代码
sprintf(text," number:%x ",led_sta); //%x输出十六进制%d十进制整数 %f十进制浮点数 %c单个字符
LCD_DisplayStringLine(Line8,(uint8_t *)text);//局部刷新 在第九行显示
操作函数示例(局部高亮)
/**
* @brief 在指定行高亮显示字符串片段
* @param line 行号 (对应LCD的第几行显示)
* @param str 要显示的字符串
* @param start 高亮起始位置 (0-19)
* @param end 高亮结束位置 (0-19)
* @note 该函数实现两种显示效果:
* 1. 非高亮区域:黑色背景显示
* 2. 高亮区域:黄色背景显示
*/
void highlight(uint8_t line, char *str, uint8_t start, uint8_t end)
{
// 第一部分:显示非高亮字符(黑色背景)
// 遍历该行所有字符位置(共20个字符)
for(uint8_t i = 0; i < 20; i++)
{
// 判断当前字符是否在非高亮区域
if(i < start || i > end)
{
// 显示单个字符
// 参数说明:
// line*24 - 行位置计算(每行高度24像素)
// 320-(16*i) - 列位置计算(屏幕宽度320像素,每个字符宽度16像素)
// * 位置计算说明:
// 320表示从屏幕右侧开始计算(从右向左显示)
// 16*i表示字符间距(16像素/字符)
LCD_DisplayChar(line * 24, (320 - (16 * i)), str[i]);
}
}
// 第二部分:显示高亮字符(黄色背景)
LCD_SetBackColor(Yellow); // 设置背景色为黄色
// 遍历高亮区间的字符
for(uint8_t i = start; i <= end; i++)
{
// 显示高亮字符(使用相同的坐标计算逻辑)
LCD_DisplayChar(line * 24, (320 - (16 * i)), str[i]);
}
// 第三部分:恢复默认背景色
LCD_SetBackColor(Black); // 重置背景色为黑色(避免影响后续显示)
}
总结
此文仅代表个人愚见。
openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。
更多推荐

所有评论(0)