国外h5制作网站模板,查询域名注册网站,自己做的手工放在哪个网站卖,天津建站模板一、引脚配置
查看引脚 将上述引脚都设置为GPIO_Output 二、导入驱动文件
将 LCD 驱动的 Inc 以及 Src 中的 fonts.h,lcd.h 和 lcd.c 导入到自己工程的驱动文件中。 当然#xff0c;后面 lcd 的驱动学习可以和 IMX6U 一块学。 三、LCD函数
void LCD_Clear(u16 Color);
功能…一、引脚配置
查看引脚 将上述引脚都设置为GPIO_Output 二、导入驱动文件
将 LCD 驱动的 Inc 以及 Src 中的 fonts.h,lcd.h 和 lcd.c 导入到自己工程的驱动文件中。 当然后面 lcd 的驱动学习可以和 IMX6U 一块学。 三、LCD函数
void LCD_Clear(u16 Color);
功能清屏设置整个屏幕颜色
void LCD_SetTextColor(vu16 Color);
功能设置文本颜色
void LCD_SetBackColor(vu16 Color);
功能设置文本背景色
void LCD_DisplayStringLine(u8 Line, u8 *ptr);
功能在指定行显示字符串
参数:Line 行号共10行 Line0-Line9ptr 要显示的字符串长度为20 案例记录4个按键按下的次数并在LCD显示
//main.h
/* USER CODE BEGIN EFP */
void Key_Proc(void);
void Lcd_Proc(void);
/* USER CODE END EFP *///main.c
/* USER CODE BEGIN Includes */
#include lcd.h
#include stdio.h
/* USER CODE END Includes *//* USER CODE BEGIN PV */
uint8_t key_val,key_up,key_down,key_old;
uint8_t B1_count,B2_count,B3_count,B4_count;
char buf[21];
/* USER CODE END PV */int main(){/* USER CODE BEGIN 2 */LCD_Init();/* USER CODE END 2 */while (1){/* USER CODE END WHILE *//* USER CODE BEGIN 3 */Key_Proc();Lcd_Proc();}/* USER CODE END 3 */
}void Key_Proc(void){key_valKey_Scan();key_down key_val (key_val^key_old);key_up ~key_val (key_val^key_old);key_oldkey_val;if(key_down1){B1_count;}if(key_down2){B2_count;}if(key_down3){B3_count;}if(key_down4){B4_count;}
}void Lcd_Proc(void)
{sprintf(buf,B1_Count:%d,B1_count);LCD_DisplayStringLine(Line1,(uint8_t*)buf);sprintf(buf,B2_Count:%d,B2_count);LCD_DisplayStringLine(Line2,(uint8_t*)buf);sprintf(buf,B3_Count:%d,B3_count);LCD_DisplayStringLine(Line3,(uint8_t*)buf);sprintf(buf,B4_Count:%d,B4_count);LCD_DisplayStringLine(Line4,(uint8_t*)buf);
} 四、界面切换
可以设置一个变量 led_page 来记录当前的界面。按键按下时修改界面。
案例做三个界面B1来切换界面,第一个界面显示 Hello World 第二个界面显示3个按键按下的次数 第三个界面显示 page_3 。
在上一小节的代码进行改动
void Key_Proc(void){key_valKey_Scan();key_down key_val (key_val^key_old);key_up ~key_val (key_val^key_old);key_oldkey_val;if(key_down1){//切屏其实就是刷屏然后再写入LCD_Clear(Black);//先判断再自加if(lcd_page3) lcd_page0;}if(key_down2){B2_count;}
}void Lcd_Proc(void)
{if(lcd_page0){LCD_DisplayStringLine(Line4,(uint8_t*) Hello World );}if(lcd_page1){sprintf(buf,B2_Count:%d,B2_count);LCD_DisplayStringLine(Line1,(uint8_t*)buf);}if(lcd_page2){LCD_DisplayStringLine(Line4,(uint8_t*) page_3 );}
}
上面代码有点小问题如果在page_1的时候就点B2的话切屏后显示的值为开始点B2的此时了。 五、高亮显示
案例1修改上一个案例的第二个界面 lcd_page1 设置三行每行各对应一个计数值。
B2按键切换三个计数值被选中的高亮。
B3按键修改被选中的计数值令其加1。
void Key_Proc(void){key_valKey_Scan();key_down key_val (key_val^key_old);key_up ~key_val (key_val^key_old);key_oldkey_val;if(key_down1){LCD_Clear(Black);if(lcd_page3) lcd_page0;}if(key_down2 lcd_page1){ //切换需要计数的lineif(line_flag3)line_flag0;}if(key_down3 lcd_page1){ //对指定的line进行计数if(line_flag0){count1;}if(line_flag1){count2;}if(line_flag2){count3;}}
}void Lcd_Proc(void)
{if(lcd_page0){LCD_DisplayStringLine(Line4,(uint8_t*) Hello World );}if(lcd_page1){ //选中为绿否则为白并把计数显示if(line_flag0)LCD_SetBackColor(Green);elseLCD_SetBackColor(White);sprintf(buf, cout1:%03d ,count1);LCD_DisplayStringLine(Line3,(uint8_t*)buf);if(line_flag1)LCD_SetBackColor(Green);elseLCD_SetBackColor(White);sprintf(buf, cout2:%03d ,count2);LCD_DisplayStringLine(Line4,(uint8_t*)buf);if(line_flag2)LCD_SetBackColor(Green);elseLCD_SetBackColor(White);sprintf(buf, cout3:%03d ,count3);LCD_DisplayStringLine(Line5,(uint8_t*)buf);}if(lcd_page2){LCD_DisplayStringLine(Line4,(uint8_t*) page_3 );}
}