目录
目录
前言
在蓝桥杯比赛中一般lcd显示屏和led灯是要一起使用的,目前先不考虑这个问题,后面拿出来单独考虑,按键的高亮显示也是非常重要的。
1.stm32cubemx设置
这里使能的是PC端口,也是板载led的引脚
系统时钟的设置,debug设置
将.c文件和.h文件添加到工程中
在mdk中添加.c文件(记得在main.c中include .h文件)
2.代码实现
打开lcd_hal.h文件
列举一些常用的函数
void LCD_Init(void);//lcd所有引脚的初始化
void LCD_SetTextColor(vu16 Color);//字体颜色设置
void LCD_SetBackColor(vu16 Color);//背景颜色设置
void LCD_ClearLine(u8 Line);//清除某一行
void LCD_Clear(u16 Color);//使用某种颜色清屏void LCD_DisplayChar(u8 Line, u16 Column, u8 Ascii);//在对应行列显示一个字符
void LCD_DisplayStringLine(u8 Line, u8 *ptr);//在某一行显示字符串
int main(void)
{
/* USER CODE BEGIN 1 */
uint8_t str[10]="1234";
uint8_t i=1;
/* 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_Clear(Black);
LCD_SetTextColor(White);//×ÖÌåΪ°×É«
LCD_SetBackColor(Black);//±³¾°ÎªºÚÉ«
//在某一行显示
LCD_DisplayStringLine(Line2,(uint8_t*)str );
//320-(列*16)注意参数是字符类型
LCD_DisplayChar(Line4, 320-(10*16), i+'0');
//格式化输出
sprintf((char*)str," va:%d ",i);
LCD_DisplayStringLine(Line6,(uint8_t*)str );
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */
}
高亮显示
我的理解就是将你所想要的字符背景颜色更改成与你设定的背景不同的颜色,这样就可以凸显出,你所想要表现出的数据
下面是一段例子,帮助大家理解
void lcd_w()
{
sprintf((char*)str1," NO:%d ",NO);
LCD_DisplayStringLine(Line2,str1);
if(keyan==0)
{
sprintf((char*)str2," %d%d : %d%d : %d%d ",h/10,h%10, m/10, m%10,s/10,s%10);
LCD_DisplayStringLine(Line3,str2);
}
if(keyan==1)
{
LCD_SetBackColor(White);
LCD_DisplayChar(Line3, 320-(16*16), s/10+48);
LCD_DisplayChar(Line3, 320-(17*16), s%10+48);
LCD_SetBackColor(Yellow);
LCD_SetBackColor(Yellow);
LCD_DisplayChar(Line3, 320-(6*16), h/10+48);
LCD_DisplayChar(Line3, 320-(7*16), h%10+48);
LCD_SetBackColor(White);
}
if(keyan==2)
{
LCD_SetBackColor(White);
LCD_DisplayChar(Line3, 320-(6*16), h/10+48);
LCD_DisplayChar(Line3, 320-(7*16), h%10+48);
LCD_SetBackColor(Yellow);
LCD_SetBackColor(Yellow);
LCD_DisplayChar(Line3, 320-(11*16), m/10+48);
LCD_DisplayChar(Line3, 320-(12*16), m%10+48);
LCD_SetBackColor(White);
}
if(keyan==3)
{
LCD_SetBackColor(White);
LCD_DisplayChar(Line3, 320-(11*16), m/10+48);
LCD_DisplayChar(Line3, 320-(12*16), m%10+48);
LCD_SetBackColor(Yellow);
LCD_SetBackColor(Yellow);
LCD_DisplayChar(Line3, 320-(16*16), s/10+48);
LCD_DisplayChar(Line3, 320-(17*16), s%10+48);
LCD_SetBackColor(White);
}
}
df749356e6628d79281565d6d617c7e6