[mw_shl_code=c,true]
[mw_shl_code=c,true]#ifndef __LCD_H
#define __LCD_H
#include "sys.h"
#include "stdlib.h"
//TFTLCD??·??????÷????????
extern u16 POINT_COLOR;//?????ì??
extern u16 BACK_COLOR; //±??°????.??????°×??
//?¨??LCD??????
#if USE_HORIZONTAL==1 //?????á??
#define LCD_W 320
#define LCD_H 240
#else
#define LCD_W 240
#define LCD_H 320
#endif
////////////////////////////////////////////////////////////////////
//-----------------LCD?????¨??----------------
#define LCD_LED PFout(12) //LCD±??? PF12
//?????????ì??IO???ò?¨?????????????????????ò??????????
//?????ì??IO??????????????????28????????
//???¨IO??????14????????
#if LCD_FAST_IO==1 //?ì??IO
//??×÷??·±???????á?????????¨?é?±???????÷??×÷
#define LCD_CS_SET GPIO_SetBits(GPIOD,GPIO_Pin_13) //???????? PD13
#define LCD_RS_SET GPIO_SetBits(GPIOD,GPIO_Pin_12) //????/?ü?? PD12
#define LCD_WR_SET GPIO_SetBits(GPIOD,GPIO_Pin_11) //?????? PD11
#define LCD_RD_SET GPIO_SetBits(GPIOD,GPIO_Pin_10) //?????? PD10
#define LCD_CS_CLR GPIO_ResetBits(GPIOD,GPIO_Pin_13) //???????? PD13
#define LCD_RS_CLR GPIO_ResetBits(GPIOD,GPIO_Pin_12) //????/?ü?? PD12
#define LCD_WR_CLR GPIO_ResetBits(GPIOD,GPIO_Pin_11) //?????? PD11
#define LCD_RD_CLR GPIO_ResetBits(GPIOD,GPIO_Pin_10) //?????? PD10
//#define LCD_CS_SET GPIOD->BSRR=1<<13 //???????? PD13
//#define LCD_RS_SET GPIOD->BSRR=1<<12 //????/?ü?? PD12
//#define LCD_WR_SET GPIOD->BSRR=1<<11 //?????? PD11
//#define LCD_RD_SET GPIOD->BSRR=1<<10 //?????? PD10
//
//#define LCD_CS_CLR GPIOD->BRR=1<<13 //???????? PD13
//#define LCD_RS_CLR GPIOD->BRR=1<<12 //????/?ü?? PD12
//#define LCD_WR_CLR GPIOD->BRR=1<<11 //?????? PD11
//#define LCD_RD_CLR GPIOD->BRR=1<<10 //?????? PD10
/*
#define LCD_CS_SET GPIO_SetBits(GPIOC,GPIO_Pin_9) //???????? PC9
#define LCD_RS_SET GPIO_SetBits(GPIOC,GPIO_Pin_8) //????/?ü?? PC8
#define LCD_WR_SET GPIO_SetBits(GPIOC,GPIO_Pin_7) //?????? PC7
#define LCD_RD_SET GPIO_SetBits(GPIOC,GPIO_Pin_6) //?????? PC6
#define LCD_CS_CLR GPIO_ResetBits(GPIOC,GPIO_Pin_9) //???????? PC9
#define LCD_RS_CLR GPIO_ResetBits(GPIOC,GPIO_Pin_8) //????/?ü?? PC8
#define LCD_WR_CLR GPIO_ResetBits(GPIOC,GPIO_Pin_7) //?????? PC7
#define LCD_RD_CLR GPIO_ResetBits(GPIOC,GPIO_Pin_6) //?????? PC6
*/
#else //????IO
#define LCD_CS PDout(13) //???????? PD13
#define LCD_RS PDout(12) //????/?ü?? PD12
#define LCD_WR PDout(11) //?????? PD11
#define LCD_RD PDout(10) //?????? PD10
#endif
//PB0~15,×÷????????
//?????????ò????×÷??·±???????á?????????¨?é?±?????????÷??×÷??
//#define DATAOUT(x) GPIOD->ODR=x; //????????
//#define DATAIN GPIOB->IDR //????????
//#define DATAOUT(x) {\
// GPIOD->ODR&=((x&0x0001)<<9);\
// GPIOD->ODR&=((x&0x0002)<<7);\
// GPIOE->ODR&=((x&0x0004)<<13);\
// GPIOE->ODR&=((x&0x0008)<<11);\
// GPIOE->ODR&=((x&0x0010)<<9);\
// GPIOE->ODR&=((x&0x0020)<<7);\
// GPIOE->ODR&=((x&0x0040)<<5);\
// GPIOE->ODR&=((x&0x0080)<<3);\
// GPIOE->ODR&=((x&0x0100)<<1);\
// GPIOE->ODR&=((x&0x0200)>>1);\
// GPIOE->ODR&=((x&0x0400)>>3);\
// GPIOG->ODR&=((x&0x0800)>>10);\
// GPIOG->ODR&=((x&0x1000)>>12);\
// GPIOF->ODR&=((x&0x2000)<<2);\
// GPIOF->ODR&=((x&0x4000));\
// GPIOF->ODR&=((x&0x8000)>>2);\
//}
//#define DATAIN (GPIOD->IDR&0xFCFF)|(GPIOE->IDR&0x007F)|(GPIOG->IDR&0xFFFC)|(GPIOF->IDR&0x1FFF);
#define DATAIN ((GPIOD->IDR&0x0200)>>9)|(((GPIOD->IDR&0x0100)>>8)<<1)|(((GPIOE->IDR&0x8000)>>15)<<2)|(((GPIOE->IDR&0x4000)>>14)<<3)|(((GPIOE->IDR&0x2000)>>13)<<4)|(((GPIOE->IDR&0x1000)>>12)<<5)|(((GPIOE->IDR&0x0800)>>11)<<6)|(((GPIOE->IDR&0x0400)>>10)<<7)|(((GPIOE->IDR&0x0200)>>9)<<8)|(((GPIOE->IDR&0x0100)>>8)<<9)|(((GPIOE->IDR&0x0080)>>7)<<10)|(((GPIOG->IDR&0x0002)>>1)<<11)|((GPIOG->IDR&0x0001)<<12)|(((GPIOF->IDR&0x8000)>>15)<<13)|(((GPIOF->IDR&0x4000)>>14)<<14)|(((GPIOG->IDR&0x2000)>>13)<<15);
/*
#define DATAOUT(x) {GPIO_Write(GPIOB,x);}
#define DATAIN GPIOB->IDR
*/
//////////////////////////////////////////////////////////////////////
//??±?????
#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 //??×?????(??????????·???)
extern u16 BACK_COLOR, POINT_COLOR ;
void LCD_Init(void);
void LCD_DisplayOn(void);
void LCD_DisplayOff(void);
void LCD_Clear(u16 Color);
void LCD_SetCursor(u16 Xpos, u16 Ypos);
void LCD_DrawPoint(u16 x,u16 y);//????
u16 LCD_ReadPoint(u16 x,u16 y); //????
void Draw_Circle(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×???
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);
u16 LCD_ReadRAM(void);
u16 LCD_BGR2RGB(u16 c);
//??8??????????
//???ê?¨??,?á??????.
#if LCD_FAST_IO==1 //?ì??IO
#define LCD_WR_DATA(data){\
LCD_RS_SET;\
LCD_CS_CLR;\
DATAOUT(data);\
LCD_WR_CLR;\
LCD_WR_SET;\
LCD_CS_SET;\
}
#else//????IO
#define LCD_WR_DATA(data){\
LCD_RS=1;\
LCD_CS=0;\
DATAOUT(data);\
LCD_WR=0;\
LCD_WR=1;\
LCD_CS=1;\
}
#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
[/mw_shl_code]
[/mw_shl_code]