Skip to content

Commit

Permalink
stm32_framework 2.0V发布,现有外设都已测试成功
Browse files Browse the repository at this point in the history
  • Loading branch information
Staok committed Sep 12, 2020
1 parent 31ed33a commit ace3160
Show file tree
Hide file tree
Showing 30 changed files with 5,604 additions and 355 deletions.
502 changes: 502 additions & 0 deletions STM32F1_HAL_freeRTOS_Framework/Devices/LCD ILI9341/BG.h

Large diffs are not rendered by default.

315 changes: 315 additions & 0 deletions STM32F1_HAL_freeRTOS_Framework/Devices/LCD ILI9341/FONT.H

Large diffs are not rendered by default.

676 changes: 676 additions & 0 deletions STM32F1_HAL_freeRTOS_Framework/Devices/LCD ILI9341/GUI.c

Large diffs are not rendered by default.

201 changes: 201 additions & 0 deletions STM32F1_HAL_freeRTOS_Framework/Devices/LCD ILI9341/GUI.h
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

Loading

0 comments on commit ace3160

Please sign in to comment.