-
Notifications
You must be signed in to change notification settings - Fork 71
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
30 changed files
with
5,604 additions
and
355 deletions.
There are no files selected for viewing
502 changes: 502 additions & 0 deletions
502
STM32F1_HAL_freeRTOS_Framework/Devices/LCD ILI9341/BG.h
Large diffs are not rendered by default.
Oops, something went wrong.
315 changes: 315 additions & 0 deletions
315
STM32F1_HAL_freeRTOS_Framework/Devices/LCD ILI9341/FONT.H
Large diffs are not rendered by default.
Oops, something went wrong.
676 changes: 676 additions & 0 deletions
676
STM32F1_HAL_freeRTOS_Framework/Devices/LCD ILI9341/GUI.c
Large diffs are not rendered by default.
Oops, something went wrong.
201 changes: 201 additions & 0 deletions
201
STM32F1_HAL_freeRTOS_Framework/Devices/LCD ILI9341/GUI.h
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,201 @@ | ||
#ifndef __GUI_H__ | ||
#define __GUI_H__ | ||
|
||
|
||
|
||
/* | ||
使用说明: | ||
针对 ILI9341,不同尺寸的lcd去ILI9341手册里找初始化代码! | ||
lcd.c和lcd.h、GUI.c和GUI.h都需要调用 | ||
1——修改LCD_Init();里面的LCD_GPIOInit()的IO初始化函数 | ||
2——修改lcd.h里面读写寄存器函数中的 DATAOUT(((GPIOB->IDR)&0x00ff)|((data<<8)&0xff00)); 这是默认使用PB的高八位作为数据线 | ||
默认PB的低八位中的PB7-PB3作为控制线 | ||
3——在程序初始化里调用一次LCD_Init();用来初始化 | ||
4——看下面可调用的GUI函数 | ||
可选的颜色: | ||
//使用这两个变量定义画笔颜色和背景色 | ||
POINT_COLOR //字符颜色 | ||
BACK_COLOR //字符背景颜色,默认为白色 | ||
//画笔颜色 | ||
#define WHITE 0xFFFF | ||
#define BLACK 0x0000 | ||
#define BLUE 0x001F | ||
#define BRED 0XF81F | ||
#define GRED 0XFFE0 | ||
#define GBLUE 0X07FF | ||
#define RED 0xF800 | ||
#define MAGENTA 0xF81F | ||
#define GREEN 0x07E0 | ||
#define CYAN 0x7FFF | ||
#define YELLOW 0xFFE0 | ||
#define BROWN 0XBC40 //棕色 | ||
#define BRRED 0XFC07 //棕红色 | ||
#define GRAY 0X8430 //灰色 | ||
//GUI颜色 | ||
#define DARKBLUE 0X01CF //深蓝色 | ||
#define LIGHTBLUE 0X7D7C //浅蓝色 | ||
#define GRAYBLUE 0X5458 //灰蓝色 | ||
//以上三色为PANEL的颜色 | ||
#define LIGHTGREEN 0X841F //浅绿色 | ||
#define LGRAY 0XC618 //浅灰色(PANNEL),窗体背景色 | ||
#define LGRAYBLUE 0XA651 //浅灰蓝色(中间层颜色) | ||
#define LBBLUE 0X2B12 //浅棕蓝色(选择条目的反色) | ||
*/ | ||
#include "sys.h" | ||
////////////////////////////////////////////////////////////////////////////////// | ||
//本程序只供学习使用,未经作者许可,不得用于其它任何用途 | ||
//测试硬件:单片机STM32F103RBT6,主频72M 单片机工作电压3.3V | ||
//QDtech-TFT液晶驱动 for STM32 IO模拟 | ||
//xiao冯@ShenZhen QDtech co.,LTD | ||
//公司网站:www.qdtech.net | ||
//淘宝网站:http://qdtech.taobao.com | ||
//我司提供技术支持,任何技术问题欢迎随时交流学习 | ||
//固话(传真) :+86 0755-23594567 | ||
//手机:15989313508(冯工) | ||
//邮箱:[email protected] | ||
//Skype:QDtech2008 | ||
//技术交流QQ群:324828016 | ||
//创建日期:2013/5/13 | ||
//版本:V1.1 | ||
//版权所有,盗版必究。 | ||
//Copyright(C) 深圳市全动电子技术有限公司 2009-2019 | ||
//All rights reserved | ||
////////////////////////////////////////////////////////////////////////////////// | ||
void GUI_DrawPoint(u16 x,u16 y,u16 color); | ||
//****************************************************************** | ||
//函数名: LCD_Fill | ||
//作者: xiao冯@全动电子 | ||
//日期: 2013-02-22 | ||
//功能: 在指定区域内填充颜色 | ||
//输入参数:sx:指定区域开始点x坐标 | ||
// sy:指定区域开始点y坐标 | ||
// ex:指定区域结束点x坐标 | ||
// ey:指定区域结束点y坐标 | ||
// color:要填充的颜色 | ||
//返回值: 无 | ||
//修改记录:无 | ||
//****************************************************************** | ||
void LCD_Fill(u16 sx,u16 sy,u16 ex,u16 ey,u16 color); | ||
//****************************************************************** | ||
//函数名: LCD_DrawLine | ||
//作者: xiao冯@全动电子 | ||
//日期: 2013-02-22 | ||
//功能: GUI画线 | ||
//输入参数:x1,y1:起点坐标 | ||
// x2,y2:终点坐标 | ||
//返回值: 无 | ||
//修改记录:无 | ||
//****************************************************************** | ||
void LCD_DrawLine(u16 x1, u16 y1, u16 x2, u16 y2); | ||
//****************************************************************** | ||
//函数名: LCD_DrawRectangle | ||
//作者: xiao冯@全动电子 | ||
//日期: 2013-02-22 | ||
//功能: GUI画矩形(非填充) | ||
//输入参数:(x1,y1),(x2,y2):矩形的对角坐标 | ||
//返回值: 无 | ||
//修改记录:无 | ||
//****************************************************************** | ||
void LCD_DrawRectangle(u16 x1, u16 y1, u16 x2, u16 y2); | ||
//****************************************************************** | ||
//函数名: LCD_DrawFillRectangle | ||
//作者: xiao冯@全动电子 | ||
//日期: 2013-02-22 | ||
//功能: GUI画矩形(填充) | ||
//输入参数:(x1,y1),(x2,y2):矩形的对角坐标 | ||
//返回值: 无 | ||
//修改记录:无 | ||
//****************************************************************** | ||
void LCD_DrawFillRectangle(u16 x1, u16 y1, u16 x2, u16 y2); | ||
//void Draw_Circle(u16 x0,u16 y0,u16 fc,u8 r); | ||
void LCD_ShowChar(u16 x,u16 y,u16 fc, u16 bc, u8 num,u8 size,u8 mode); | ||
void LCD_ShowNum(u16 x,u16 y,u32 num,u8 len,u8 size); | ||
//void LCD_Show2Num(u16 x,u16 y,u16 num,u8 len,u8 size,u8 mode); | ||
//****************************************************************** | ||
//函数名: LCD_ShowString———————————————————————————————————————————————————————————————————————————————————用于写英文和数字 | ||
//作者: xiao冯@全动电子——————————————————————————————————————————————————————————————————————————————————注:要显示数字变量等信息只需用sprintf,然后用此函数显示 | ||
//——————————————————例子: | ||
/* sprintf(RuningTime_SHOW_STR,"%dmin/%dmin",Timer_IT_flags._1min,SetMaxRuningMins); | ||
POINT_COLOR=WHITE; | ||
LCD_ShowString(10,10,16,(u8*)RuningTime_SHOW_STR,0); | ||
例子: | ||
sprintf(RTC_buf,"%d-%d-%d %d-%d-%d",calendar.w_year,calendar.w_month,calendar.w_date,calendar.hour,calendar.min,calendar.sec); | ||
printf_uart(UART1,"%s",RTC_buf); | ||
POINT_COLOR = RED; //————————————————————————————————必要指定颜色,否则可能会和背景同色 | ||
BACK_COLOR = BLACK; | ||
LCD_ShowString(10,50,16,(u8*)RTC_buf,0); | ||
POINT_COLOR = YELLOW; | ||
LCD_ShowString(10,70,12,"Staok!~%$#",1); | ||
*/ | ||
//日期: 2013-02-22 | ||
//功能: 显示英文字符串 | ||
//输入参数:x,y :起点坐标 | ||
// size:字体大小————————————————————————————————————————可选12,16 | ||
// *p:字符串起始地址 | ||
// mode:模式 0,填充模式;1,叠加模式 | ||
//返回值: 无 | ||
//修改记录:无 | ||
//****************************************************************** | ||
void LCD_ShowString(u16 x,u16 y,u8 size,u8 *p,u8 mode); | ||
void GUI_DrawFont16(u16 x, u16 y, u16 fc, u16 bc, u8 *s,u8 mode); | ||
void GUI_DrawFont24(u16 x, u16 y, u16 fc, u16 bc, u8 *s,u8 mode); | ||
void GUI_DrawFont32(u16 x, u16 y, u16 fc, u16 bc, u8 *s,u8 mode); | ||
//****************************************************************** | ||
//函数名: Show_Str——————————————————————————————————————————————————————————————————————————————————————用于写中英文,可单独写中文 | ||
//作者: xiao冯@全动电子——————————————————————————————————————————————————————————————————————例子:Show_Str(10,10,WHITE,BLACK,"电池类型:LiPO",16,1); | ||
//日期: 2013-02-22 | ||
//功能: 显示一个字符串,包含中英文显示 | ||
//输入参数:x,y :起点坐标 | ||
// fc:前置画笔颜色 | ||
// bc:背景颜色 | ||
// str :字符串 | ||
// size:字体大小——————————————————————————————————————可选16,24和32,需要先在font文件里填上对应的点阵信息 | ||
// mode:模式 0,填充模式;1,叠加模式 | ||
//返回值: 无 | ||
//修改记录:无 | ||
//****************************************************************** | ||
void Show_Str(u16 x, u16 y, u16 fc, u16 bc, u8 *str,u8 size,u8 mode); | ||
void Gui_Drawbmp16(u16 x,u16 y,const unsigned char *p); //显示显示一副16位BMP图像 40*40 QQ图片 | ||
//****************************************************************** | ||
//函数名: gui_circle | ||
//作者: xiao冯@全动电子 | ||
//日期: 2013-02-22 | ||
//功能: 在指定位置画一个指定大小的圆(填充) | ||
//输入参数:(xc,yc) :圆中心坐标 | ||
// c:填充的颜色 | ||
// r:圆半径 | ||
// fill:填充判断标志,1-填充,0-不填充 | ||
//返回值: 无 | ||
//修改记录:无 | ||
//****************************************************************** | ||
void gui_circle(int xc, int yc,u16 c,int r, int fill); | ||
//****************************************************************** | ||
//函数名: Gui_StrCenter | ||
//作者: xiao冯@全动电子 | ||
//日期: 2013-02-22 | ||
//功能: 居中显示一个字符串,包含中英文显示 | ||
//输入参数:x,y :起点坐标 | ||
// fc:前置画笔颜色 | ||
// bc:背景颜色 | ||
// str :字符串 | ||
// size:字体大小 | ||
// mode:模式 0,填充模式;1,叠加模式 | ||
//返回值: 无 | ||
//修改记录:无 | ||
//****************************************************************** | ||
void Gui_StrCenter(u16 x, u16 y, u16 fc, u16 bc, u8 *str,u8 size,u8 mode); | ||
//在LCD头部居中显示当前页面名称信息,中英文显示,头部内容需要在函数内修改————————————————————————————————————用于写页面标题 | ||
//——————————————————————————————————————————————————————————————————————————————————————————————————————例子:DrawPageHead("电源模式"); | ||
void DrawPageHead(u8 *str); | ||
#endif | ||
|
Oops, something went wrong.