收藏 分销(赏)

09-TFT彩屏编程-yy.doc

上传人:仙人****88 文档编号:12012553 上传时间:2025-08-27 格式:DOC 页数:5 大小:58.50KB 下载积分:10 金币
下载 相关 举报
09-TFT彩屏编程-yy.doc_第1页
第1页 / 共5页
09-TFT彩屏编程-yy.doc_第2页
第2页 / 共5页


点击查看更多>>
资源描述
九、TFT彩屏编程 图形和图像的区别:图像占用较大的存储资源。 TFT软件开发的3层结构 Ø 分为用户应用程序层、GUI函数层、驱动函数层。 Ø 图形用户界面(Graphical User Interface,GUI)是指采用图形方式显示的计算机操作用户界面。 Ø GUI函数可以实现画点、画圆、画线、矩形、正方形、填充、中英文、图标显示,帮助用户方便创建图形界面。 Ø 直接和TFT彩屏模块硬件打交道的是低层驱动函数。驱动函数一般TFT彩屏生产厂家会提供,用户不需要自己编写。 Lcd_bottom.h定义了驱动函数层 #ifndef __LCD_BOTTOM_H #define __LCD_BOTTOM_H #include "stm32f10x.h" #include "stdlib.h" //定义横屏or竖屏 #define USE_HORIZONTAL 1 //定义是否使用横屏 0,不使用.1,使用. //JTAG模式设置定义,修改PB3和PB4功能用 //因LCD的D3和D4接PB3和PB4,而它们复位后功能是JTDO和NJTRST,复位后是完全SWJ,因此需先关闭JTAG #define JTAG_SWD_DISABLE 0X02 #define SWD_ENABLE 0X01 #define JTAG_SWD_ENABLE 0X00 //////////////////////////////////////////////////////////////////// //-----------------LCD端口定义---------------- #define LCD_LED_ON GPIOC->BSRR=1<<10 //打开LCD背光 PC10 #define LCD_LED_OFF GPIOC->BRR=1<<10 //关闭LCD背光 PC10 //使用快速IO,刷屏速率可以达到28帧每秒! #define LCD_CS_SET GPIOC->BSRR=1<<9 //片选端口 PC9 #define LCD_RS_SET GPIOC->BSRR=1<<8 //数据/命令, RS=1读写数据选通 PC8 #define LCD_WR_SET GPIOC->BSRR=1<<7 //写数据 PC7 #define LCD_RD_SET GPIOC->BSRR=1<<6 //读数据 PC6 #define LCD_CS_CLR GPIOC->BRR=1<<9 //片选端口 PC9 #define LCD_RS_CLR GPIOC->BRR=1<<8 //数据/命令,RS=0读写命令选通 PC8 #define LCD_WR_CLR GPIOC->BRR=1<<7 //写数据, WR=0写数据 PC7 #define LCD_RD_CLR GPIOC->BRR=1<<6 //读数据 PC6 //PB0~15,作为数据线 #define DATAOUT(x) GPIOB->ODR=x; //数据输出 #define DATAIN GPIOB->IDR; //数据输入 ////////////////////////////////////////////////////////////////////// void LCD_GPIO_Conf(void); void LCD_Init_Conf(void); void JTAG_Set(u8 mode); void LCD_WR_REG(u8); void LCD_WR_DATA(u16); void LCD_WriteReg(u8 LCD_Reg, u16 LCD_RegValue); u16 LCD_ReadReg(u8 LCD_Reg); void LCD_WriteRAM_Prepare(void); void LCD_WriteRAM(u16 RGB_Code); void LCD_DisplayOn(void); void LCD_DisplayOff(void); void LCD_SetCursor(u16 Xpos, u16 Ypos); u16 LCD_ReadPoint(u16 x,u16 y); //读点 u16 LCD_BGR2RGB(u16 c); //定义LCD的尺寸 #if USE_HORIZONTAL==1 //使用横屏 #define LCD_W 320 #define LCD_H 240 #else #define LCD_W 240 #define LCD_H 320 #endif //////////////////////////////////////////////////////////////////// //9320/9325 LCD寄存器 #define R0 0x00 #define R1 0x01 #define R2 0x02 #define R3 0x03 #define R4 0x04 #define R5 0x05 #define R6 0x06 #define R7 0x07 #define R8 0x08 #define R9 0x09 #define R10 0x0A #define R12 0x0C #define R13 0x0D #define R14 0x0E #define R15 0x0F #define R16 0x10 #define R17 0x11 #define R18 0x12 #define R19 0x13 #define R20 0x14 #define R21 0x15 #define R22 0x16 #define R23 0x17 #define R24 0x18 #define R25 0x19 #define R26 0x1A #define R27 0x1B #define R28 0x1C #define R29 0x1D #define R30 0x1E #define R31 0x1F #define R32 0x20 #define R33 0x21 #define R34 0x22 #define R36 0x24 #define R37 0x25 #define R40 0x28 #define R41 0x29 #define R43 0x2B #define R45 0x2D #define R48 0x30 #define R49 0x31 #define R50 0x32 #define R51 0x33 #define R52 0x34 #define R53 0x35 #define R54 0x36 #define R55 0x37 #define R56 0x38 #define R57 0x39 #define R59 0x3B #define R60 0x3C #define R61 0x3D #define R62 0x3E #define R63 0x3F #define R64 0x40 #define R65 0x41 #define R66 0x42 #define R67 0x43 #define R68 0x44 #define R69 0x45 #define R70 0x46 #define R71 0x47 #define R72 0x48 #define R73 0x49 #define R74 0x4A #define R75 0x4B #define R76 0x4C #define R77 0x4D #define R78 0x4E #define R79 0x4F #define R80 0x50 #define R81 0x51 #define R82 0x52 #define R83 0x53 #define R96 0x60 #define R97 0x61 #define R106 0x6A #define R118 0x76 #define R128 0x80 #define R129 0x81 #define R130 0x82 #define R131 0x83 #define R132 0x84 #define R133 0x85 #define R134 0x86 #define R135 0x87 #define R136 0x88 #define R137 0x89 #define R139 0x8B #define R140 0x8C #define R141 0x8D #define R143 0x8F #define R144 0x90 #define R145 0x91 #define R146 0x92 #define R147 0x93 #define R148 0x94 #define R149 0x95 #define R150 0x96 #define R151 0x97 #define R152 0x98 #define R153 0x99 #define R154 0x9A #define R157 0x9D #define R192 0xC0 #define R193 0xC1 #define R229 0xE5 #endif 注:LCD的低层读写函数,使用的是直接操作寄存器的方式,寄存器地址在stm32f10x.h文件中定义!! Lcd.h定义了GUI函数层 #ifndef __LCD_H #define __LCD_H #include "lcd_bottom.h" #include "stdlib.h" //TFTLCD部分外要调用的函数 extern u16 POINT_COLOR;//默认红色 extern u16 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 LIGHTGRAY 0XEF5B //浅灰色(PANNEL) #define LGRAY 0XC618 //浅灰色(PANNEL),窗体背景色 #define LGRAYBLUE 0XA651 //浅灰蓝色(中间层颜色) #define LBBLUE 0X2B12 //浅棕蓝色(选择条目的反色) void LCD_Init(void); void LCD_Clear(u16 Color); void LCD_DrawPoint(u16 x,u16 y);//画点 void LCD_DrawCircle(u16 x0,u16 y0,u8 r); void LCD_DrawLine(u16 x1, u16 y1, u16 x2, u16 y2); void LCD_DrawRectangle(u16 x1, u16 y1, u16 x2, u16 y2); void LCD_Fill(u16 xsta,u16 ysta,u16 xend,u16 yend,u16 color); void LCD_ShowChar(u16 x,u16 y,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);//显示2个数字 void LCD_ShowString(u16 x,u16 y,const u8 *p); //显示一个字符串,16字体 u16 RGB(u8 R,u8 G,u8 B); void LCD_open_windows(u16 x,u16 y,u16 len,u16 wid); void LCD_ShowPic(u16 x,u16 y,u16 wide,u16 height,const u8 *arr); #endif
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服