1412 lines
32 KiB
C
Raw Normal View History

2021-07-28 13:15:22 +08:00
#include "lcd.h"
#include "stdlib.h"
#include "font.h"
#include "usart.h"
#include "Text.h"
#include "Dis_Picture.h"
#include "SPI.h"
//////////////////////////////////////////////////////////////////////////////////
////2.0<EFBFBD><EFBFBD> 240x320 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> LCD<43><44>ʾ Һ<><D2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//STM32F4<46><34><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>-<2D><EFBFBD><E2BAAF><EFBFBD>
//DevEBox <20><>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD>
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>mcudev.taobao.com
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>shop389957290.taobao.com
//********************************************************************************
//////////////////////////////////////////////////////////////////////////////////
//LCD<43>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD>ͱ<EFBFBD><CDB1><EFBFBD>ɫ
u16 POINT_COLOR=0x0000; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
u16 BACK_COLOR=0xFFFF; //<2F><><EFBFBD><EFBFBD>ɫ
//<2F><><EFBFBD><EFBFBD>LCD<43><44>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>
//Ĭ<><C4AC>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>
_lcd_dev lcddev;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD>MCUӲ<55><D3B2>SPI<50>ӿ<EFBFBD><D3BF><EFBFBD><EFBFBD><EFBFBD>
/******************************************************************************
<EFBFBD>ӿڶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸IJ<EFBFBD><EFBFBD>޸<EFBFBD><EFBFBD><EFBFBD>ӦIO<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD>--<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӻ<EFBFBD>IOҪ<EFBFBD><EFBFBD>Ӧ
// #define LCD_SDI //PB15 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// #define LCD_SCL //PB13 //ʱ<><CAB1><EFBFBD><EFBFBD>
// #define LCD_CS //PB12 //Ƭѡ
// #define LCD_SDO //PB14 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><>λ
// #define LCD_RS //PB1 //<2F><><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD>
// #define LCD_BLK //PB0 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*******************************************************************************/
/******************************************************************************/
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> void LCD_GPIO_Init(void)
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD>Һ<EFBFBD><D2BA>IO<49><4F>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//DevEBox <20><>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD>
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>mcudev.taobao.com
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>shop389957290.taobao.com
// #define LCD_SDI //PB15 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// #define LCD_SCL //PB13 //ʱ<><CAB1><EFBFBD><EFBFBD>
// #define LCD_CS //PB12 //Ƭѡ
// #define LCD_SDO //PB14 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><>λ
// #define LCD_RS //PB1 //<2F><><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD>
// #define LCD_BLK //PB0 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/******************************************************************************/
void LCD_GPIO_Init(void)
{
GPIO_InitTypeDef GPIO_Initure;
__HAL_RCC_GPIOB_CLK_ENABLE(); //<2F><><EFBFBD><EFBFBD>PBʱ<42><CAB1>
GPIO_Initure.Pin=GPIO_PIN_0 |GPIO_PIN_1 | GPIO_PIN_12; //PB
GPIO_Initure.Mode=GPIO_MODE_OUTPUT_PP; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
GPIO_Initure.Pull=GPIO_PULLUP; //<2F><><EFBFBD><EFBFBD>
GPIO_Initure.Speed=GPIO_SPEED_FREQ_VERY_HIGH; //<2F><><EFBFBD><EFBFBD>
HAL_GPIO_Init(GPIOB,&GPIO_Initure); //<2F><>ʼ<EFBFBD><CABC>
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,GPIO_PIN_SET); //PB0<42><30>1
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_1,GPIO_PIN_SET); //PB1<42><31>1
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_12,GPIO_PIN_SET); //PB12<31><32>1
SPI2_Init(); //<2F><>ʼ<EFBFBD><CABC>Ӳ<EFBFBD><D3B2>SPI2
SPI2_SetSpeed(SPI_BAUDRATEPRESCALER_4); //<2F><><EFBFBD>ø<EFBFBD><C3B8><EFBFBD>ģʽ --<2D>ٶ<EFBFBD>̫<EFBFBD><EFBFBD><ECA3AC>ȡ<EFBFBD>ֿ⣬<D6BF><E2A3AC><EFBFBD>׳<EFBFBD><D7B3><EFBFBD>
LCD_HardwareRest(); //Ӳ<><D3B2>λ--<2D><><EFBFBD><EFBFBD>IO<49><4F><EFBFBD>ӣ<EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD><EFBFBD>λ<EFBFBD>ɿ<EFBFBD><C9BF><EFBFBD>Ч
LCD_BLK_On; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// LCD_BLK_Off; //<2F>رձ<D8B1><D5B1><EFBFBD>
// LCD_BLK_On; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
//********************************************************************/
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>void LCD_WR_REG(u16 regval)
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD>
//д<>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//regval:<3A>Ĵ<EFBFBD><C4B4><EFBFBD>ֵ
//DevEBox <20><>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD>
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>mcudev.taobao.com
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>shop389957290.taobao.com
//*******************************************************************/
void LCD_WR_REG(u16 regval)
{
LCD_CS_CLR; //LCD_CS=0 //Ƭѡ
LCD_RS_CLR; //LCD_RS=0 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
SPI2_ReadWriteByte(regval&0x00FF);
LCD_CS_SET; //LCD_CS=1
}
//*******************************************************************/
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>void LCD_WR_DATA8(u8 data) //д8λ<38><CEBB><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD>
//Һ<><D2BA><EFBFBD><EFBFBD>--д8λ<38><CEBB><EFBFBD>ݺ<EFBFBD><DDBA><EFBFBD>
//DevEBox <20><>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD>
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>mcudev.taobao.com
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>shop389957290.taobao.com
//*******************************************************************/
void LCD_WR_DATA8(u8 data) //д8λ<38><CEBB><EFBFBD><EFBFBD>
{
LCD_CS_CLR; //LCD_CS=0 //Ƭѡ
LCD_RS_SET; //LCD_RS=1 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
SPI2_ReadWriteByte(data);
LCD_CS_SET; //LCD_CS=1
}
//*******************************************************************/
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>void LCD_WR_DATA16(u16 data) //д16λ<36><CEBB><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD>дLCD<43><44><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//data:Ҫд<D2AA><D0B4><EFBFBD><EFBFBD>ֵ
//DevEBox <20><>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD>
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>mcudev.taobao.com
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>shop389957290.taobao.com
//*******************************************************************/
void LCD_WR_DATA16(u16 data)
{
LCD_CS_CLR; //LCD_CS=0 //Ƭѡ
LCD_RS_SET; //LCD_RS=1 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
SPI2_ReadWriteByte(data>>8);
SPI2_ReadWriteByte(data);
LCD_CS_SET; //LCD_CS=1
}
//*******************************************************************/
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>void LCD_WriteReg(u16 LCD_Reg, u16 LCD_RegValue) //дҺ<D0B4><D2BA><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD>д<EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
//LCD_Reg:<3A>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD>ַ
//LCD_RegValue:Ҫд<D2AA><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//DevEBox <20><>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD>
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>mcudev.taobao.com
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>shop389957290.taobao.com
//*******************************************************************/
void LCD_WriteReg(u16 LCD_Reg, u16 LCD_RegValue)
{
LCD_WR_REG(LCD_Reg); //д<><D0B4>Ҫд<D2AA>ļĴ<C4BC><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
LCD_WR_DATA8(LCD_RegValue);//д<><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
//*******************************************************************/
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>void LCD_WriteRAM_Prepare(void)
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD>ʼдGRAM <20><><EFBFBD><EFBFBD>
//DevEBox <20><>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD>
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>mcudev.taobao.com
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>shop389957290.taobao.com
//*******************************************************************/
void LCD_WriteRAM_Prepare(void)
{
LCD_WR_REG(lcddev.wramcmd);
}
//*******************************************************************/
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>LCD_WriteRAM(u16 RGB_Code)
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫֵ
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
//RGB_Code:<3A><>ɫֵ
//DevEBox <20><>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD>
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>mcudev.taobao.com
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>shop389957290.taobao.com
//*******************************************************************/
void LCD_WriteRAM(u16 RGB_Code)
{
LCD_WR_DATA16( RGB_Code );//дʮ<D0B4><CAAE>λGRAM
}
//********************************************************************************/
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>void LCD_DisplayOn(void)
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD>
//LCD<43><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
//DevEBox <20><>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD>
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>mcudev.taobao.com
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>shop389957290.taobao.com
//*******************************************************************/
void LCD_DisplayOn(void)
{
LCD_WR_REG(0X29); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
}
//*******************************************************************/
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>void LCD_DisplayOff(void)
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD>
//LCD<43>ر<EFBFBD><D8B1><EFBFBD>ʾ
//DevEBox <20><>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD>
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>mcudev.taobao.com
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>shop389957290.taobao.com
//*******************************************************************/
void LCD_DisplayOff(void)
{
LCD_WR_REG(0X28); //<2F>ر<EFBFBD><D8B1><EFBFBD>ʾ
}
//********************************************************************************/
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>void LCD_SoftRest(void)
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD><EFBFBD>ִ<EEA3AC><D6B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>
//LCD<43><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
//DevEBox <20><>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD>
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>mcudev.taobao.com
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>shop389957290.taobao.com
//*******************************************************************/
void LCD_SoftRest(void)
{
LCD_WR_REG(0x01); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>
LCD_Delay_ms(50); // delay 50 ms
}
//********************************************************************************/
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>void LCD_SoftRest(void)
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD><EFBFBD>ִ<EEA3AC><D6B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>
//LCD<43><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
//DevEBox <20><>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD>
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>mcudev.taobao.com
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>shop389957290.taobao.com
//*******************************************************************/
void LCD_HardwareRest(void)
{
LCD_RST_Clr; //Һ<><D2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ --Ӳ<><D3B2>λ--ʹ<><CAB9> //PB14<31><34>ΪҺ<CEAA><D2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
LCD_Delay_ms(50); // delay 50 ms
LCD_RST_Set; //Һ<><D2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ --Ӳ<><D3B2>λ--ʧ<><CAA7> //PB14<31><34>ΪҺ<CEAA><D2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
LCD_Delay_ms(30); // delay 30 ms
}
//*******************************************************************/
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>void LCD_SetCursor(u16 Xpos, u16 Ypos)
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD>ù<EFBFBD><C3B9><EFBFBD>λ<EFBFBD><CEBB>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//Xpos:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//Ypos:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//DevEBox <20><>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD>
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>mcudev.taobao.com
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>shop389957290.taobao.com
//*******************************************************************/
void LCD_SetCursor(u16 Xpos, u16 Ypos)
{
// if(LCD_DIR_Mode==2)Ypos=Ypos;
// if(LCD_DIR_Mode==3)Xpos=Xpos;
LCD_WR_REG(lcddev.setxcmd);
LCD_WR_DATA16(Xpos);
LCD_WR_REG(lcddev.setycmd);
LCD_WR_DATA16(Ypos);
}
//*******************************************************************/
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>void LCD_DrawPoint(u16 x,u16 y)
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//x,y:<3A><><EFBFBD><EFBFBD>
//POINT_COLOR:<3A>˵<EFBFBD><CBB5><EFBFBD><EFBFBD><EFBFBD>ɫ
//DevEBox <20><>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD>
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>mcudev.taobao.com
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>shop389957290.taobao.com
//*******************************************************************/
void LCD_DrawPoint(u16 x,u16 y)
{
LCD_SetCursor(x,y); //<2F><><EFBFBD>ù<EFBFBD><C3B9><EFBFBD>λ<EFBFBD><CEBB>
LCD_WriteRAM_Prepare(); //<2F><>ʼд<CABC><D0B4>GRAM
LCD_WR_DATA16(POINT_COLOR);
}
//*******************************************************************/
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>void LCD_Fast_DrawPoint(u16 x,u16 y,u16 color)
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD>ٻ<EFBFBD><D9BB><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//x,y:<3A><><EFBFBD><EFBFBD>
//color:<3A><>ɫ
//DevEBox <20><>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD>
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>mcudev.taobao.com
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>shop389957290.taobao.com
//*******************************************************************/
void LCD_Fast_DrawPoint(u16 x,u16 y,u16 color)
{
// if(LCD_DIR_Mode==2)y=y;
// if(LCD_DIR_Mode==3)x=x;
LCD_WR_REG(lcddev.setxcmd);
LCD_WR_DATA16(x);
LCD_WR_REG(lcddev.setycmd);
LCD_WR_DATA16(y);
LCD_WR_REG(lcddev.wramcmd);
LCD_WR_DATA16(color); //д<><D0B4>16λ<36><CEBB>ɫ
}
//*******************************************************************/
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>void LCD_Scan_Dir(u8 dir)
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD>LCD<43><44><EFBFBD>Զ<EFBFBD>ɨ<EFBFBD><EFBFBD><E8B7BD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//Ĭ<><C4AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΪL2R_U2D,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>ɨ<EFBFBD>ʽ,<2C><><EFBFBD>ܵ<EFBFBD><DCB5><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
//dir:0~7,<2C><><EFBFBD><EFBFBD>8<EFBFBD><38><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//DevEBox <20><>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD>
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>mcudev.taobao.com
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>shop389957290.taobao.com
//*******************************************************************/
void LCD_Scan_Dir(u8 dir)
{
u8 regval=0;
//ɨ<><EFBFBD><E8B7BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>--ɨ<>ʽ<E8B7BD>в<EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD>񣬿<EFBFBD><F1A3ACBF>ܶ<EFBFBD><DCB6><EFBFBD><E5B2BB><EFBFBD>Һ<EFBFBD><D2BA><EFBFBD><EFBFBD>µIJ<C2B5><C4B2>շ<EFBFBD><D5B7><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD>᷽ܽʽ<E1B7BD><CABD>ֻ<EFBFBD><D6BB>һ<EFBFBD>°<EFBFBD><C2B0><EFBFBD>
switch(dir)
{
case 0:
regval|=(0<<7)|(0<<6)|(0<<5);
break;
case 1:
regval|=(0<<7)|(1<<6)|(1<<5);
break;
case 2:
regval|=(1<<7)|(1<<6)|(0<<5);
break;
case 3:
regval|=(1<<7)|(0<<6)|(1<<5);
break;
}
LCD_WriteReg(0x36,regval);//<2F>ı<EFBFBD>ɨ<EFBFBD><EFBFBD><E8B7BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ---<2D>˴<EFBFBD><CBB4><EFBFBD>Ҫ<EFBFBD><EFBFBD><E9BFB4><EFBFBD><EFBFBD><EFBFBD>ֲᣬȷ<E1A3AC><C8B7>RGB<47><42>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
/**************************************************************************/
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>void LCD_Display_Dir(u8 dir)
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD>LCD<43><44><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ز<EFBFBD><D8B2><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD>LCD<43><44>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
////dir: 0,<2C><><EFBFBD><EFBFBD> <20><>
// 1,<2C><><EFBFBD><EFBFBD> <20><>
// 2,<2C><><EFBFBD><EFBFBD> <20><>
// 3,<2C><><EFBFBD><EFBFBD> <20><>
//DevEBox <20><>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD>
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>mcudev.taobao.com
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>shop389957290.taobao.com
//*************************************************************************/
void LCD_Display_Dir(u8 dir)
{
u8 SCAN_DIR;
if(dir==0) //<2F><><EFBFBD><EFBFBD> <20><>
{
lcddev.dir=0; //<2F><><EFBFBD><EFBFBD>
lcddev.width=240;
lcddev.height=320;
lcddev.wramcmd=0X2C;
lcddev.setxcmd=0X2A;
lcddev.setycmd=0X2B;
SCAN_DIR=0; //ѡ<><D1A1>ɨ<EFBFBD><EFBFBD><E8B7BD>
}
else if (dir==1) //<2F><><EFBFBD><EFBFBD>
{
lcddev.dir=0; //<2F><><EFBFBD><EFBFBD>
lcddev.width=320;
lcddev.height=240;
lcddev.wramcmd=0X2C;
lcddev.setxcmd=0X2A;
lcddev.setycmd=0X2B;
SCAN_DIR=1; //ѡ<><D1A1>ɨ<EFBFBD><EFBFBD><E8B7BD>
}
else if (dir==2) //<2F><><EFBFBD><EFBFBD>
{
lcddev.dir=1; //<2F><><EFBFBD><EFBFBD>
lcddev.width=240;
lcddev.height=320;
lcddev.wramcmd=0X2C;
lcddev.setxcmd=0X2A;
lcddev.setycmd=0X2B;
SCAN_DIR=2; //ѡ<><D1A1>ɨ<EFBFBD><EFBFBD><E8B7BD>
}
else if (dir==3) //<2F><><EFBFBD><EFBFBD>
{
lcddev.dir=1; //<2F><><EFBFBD><EFBFBD>
lcddev.width=320;
lcddev.height=240;
lcddev.wramcmd=0X2C;
lcddev.setxcmd=0X2A;
lcddev.setycmd=0X2B;
SCAN_DIR=3; //ѡ<><D1A1>ɨ<EFBFBD><EFBFBD><E8B7BD>
}
else //<2F><><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>--<2D><>
{
lcddev.dir=0; //<2F><><EFBFBD><EFBFBD>
lcddev.width=240;
lcddev.height=320;
lcddev.wramcmd=0X2C;
lcddev.setxcmd=0X2A;
lcddev.setycmd=0X2B;
SCAN_DIR=0; //ѡ<><D1A1>ɨ<EFBFBD><EFBFBD><E8B7BD>
}
//////<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>Χ
LCD_Set_Window(0,0,lcddev.width,lcddev.height);//<2F><><EFBFBD><EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/////<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>ʾ--ɨ<><EFBFBD><E8B7BD>
LCD_Scan_Dir(SCAN_DIR); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>ʾ--ɨ<><EFBFBD><E8B7BD>
}
/**************************************************************************/
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>void LCD_Set_Window(u16 sx,u16 sy,u16 width,u16 height)
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD>LCD<43><44><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
//<2F><><EFBFBD>ô<EFBFBD><C3B4><EFBFBD>,<2C><><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EAB5BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͻ<EFBFBD>(sx,sy).
//sx,sy:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>(<28><><EFBFBD>Ͻ<EFBFBD>)
//width,height:<3A><><EFBFBD>ڿ<EFBFBD><DABF>Ⱥ͸߶<CDB8>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0!!
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С:width*height.
//DevEBox <20><>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD>
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>mcudev.taobao.com
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>shop389957290.taobao.com
//*************************************************************************/
void LCD_Set_Window(u16 sx,u16 sy,u16 width,u16 height)
{
width=sx+width-1;
height=sy+height-1;
if(LCD_DIR_Mode==0)
{
LCD_WR_REG(lcddev.setxcmd);
LCD_WR_DATA16(sx); //<2F><><EFBFBD><EFBFBD> X<><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
LCD_WR_DATA16(width); //<2F><><EFBFBD><EFBFBD> X<><58><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD>
LCD_WR_REG(lcddev.setycmd);
LCD_WR_DATA16(sy); //<2F><><EFBFBD><EFBFBD> Y<><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
LCD_WR_DATA16(height); //<2F><><EFBFBD><EFBFBD> Y<><59><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD>
}
else if(LCD_DIR_Mode==1)
{
LCD_WR_REG(lcddev.setxcmd);
LCD_WR_DATA16(sx); //<2F><><EFBFBD><EFBFBD> X<><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
LCD_WR_DATA16(width); //<2F><><EFBFBD><EFBFBD> X<><58><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD>
LCD_WR_REG(lcddev.setycmd);
LCD_WR_DATA16(sy); //<2F><><EFBFBD><EFBFBD> Y<><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
LCD_WR_DATA16(height); //<2F><><EFBFBD><EFBFBD> Y<><59><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD>
}
else if(LCD_DIR_Mode==2)
{
LCD_WR_REG(lcddev.setxcmd);
LCD_WR_DATA16(sx); //<2F><><EFBFBD><EFBFBD> X<><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
LCD_WR_DATA16(width); //<2F><><EFBFBD><EFBFBD> X<><58><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD>
LCD_WR_REG(lcddev.setycmd);
LCD_WR_DATA16(sy); //<2F><><EFBFBD><EFBFBD> Y<><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
LCD_WR_DATA16(height); //<2F><><EFBFBD><EFBFBD> Y<><59><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD>
}
else if(LCD_DIR_Mode==3)
{
LCD_WR_REG(lcddev.setxcmd);
LCD_WR_DATA16(sx); //<2F><><EFBFBD><EFBFBD> X<><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
LCD_WR_DATA16(width); //<2F><><EFBFBD><EFBFBD> X<><58><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD>
LCD_WR_REG(lcddev.setycmd);
LCD_WR_DATA16(sy); //<2F><><EFBFBD><EFBFBD> Y<><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
LCD_WR_DATA16(height); //<2F><><EFBFBD><EFBFBD> Y<><59><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD>
}
}
/*******************************************************************************/
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>void LCD_Init(void)
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD>ʼ<EFBFBD><CABC>lcd
//<2F>ó<EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Գ<EFBFBD>ʼ<EFBFBD><CABC>ST7789V
//DevEBox <20><>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD>
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>mcudev.taobao.com
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>shop389957290.taobao.com
/*******************************************************************************/
void LCD_Init(void)
{
LCD_GPIO_Init(); //<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> I/O<>ӿ<EFBFBD>
LCD_SoftRest(); //<2F><><EFBFBD><EFBFBD>λ
LCD_Delay_ms(50); // delay 50 ms
//************* Start Initial Sequence **********//
LCD_WR_REG(0x36);//<2F>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD>ݷ<EFBFBD><DDB7>ʿ<EFBFBD><CABF><EFBFBD>
LCD_WR_DATA8(0x00);
//if(USE_HORIZONTAL==0)LCD_WR_DATA8(0x00);
//else if(USE_HORIZONTAL==1)LCD_WR_DATA8(0xC0);
//else if(USE_HORIZONTAL==2)LCD_WR_DATA8(0x70);
//else LCD_WR_DATA8(0xA0);
LCD_WR_REG(0x3A);//<2F>ӿ<EFBFBD><D3BF><EFBFBD><EFBFBD>ظ<EFBFBD>ʽ
LCD_WR_DATA8(0x05);
LCD_WR_REG(0xB2); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
LCD_WR_DATA8(0x0C);
LCD_WR_DATA8(0x0C);
LCD_WR_DATA8(0x00);
LCD_WR_DATA8(0x33);
LCD_WR_DATA8(0x33);
LCD_WR_REG(0xB7); //<2F>ſ<EFBFBD><C5BF><EFBFBD>
LCD_WR_DATA8(0x35);
LCD_WR_REG(0xBB); //VCOM Setting
LCD_WR_DATA8(0x19);
LCD_WR_REG(0xC0); //LCM Control
LCD_WR_DATA8(0x2C);
LCD_WR_REG(0xC2); //VDV and VRH Command Enable
LCD_WR_DATA8(0x01);
LCD_WR_REG(0xC3); //VRH Set
LCD_WR_DATA8(0x12);
LCD_WR_REG(0xC4); //VDV Set
LCD_WR_DATA8(0x20);
LCD_WR_REG(0xC6); //<2F><><EFBFBD><EFBFBD>ģʽ<C4A3>µ<EFBFBD>֡<EFBFBD>ʿ<EFBFBD><CABF><EFBFBD>
LCD_WR_DATA8(0x0F); //֡Ƶ<D6A1><C6B5>60֡
LCD_WR_REG(0xD0); //Power Control
LCD_WR_DATA8(0xA4);
LCD_WR_DATA8(0xA1);
LCD_WR_REG(0xE0); //<2F><><EFBFBD><EFBFBD>ѹ٤<D1B9><D9A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
LCD_WR_DATA8(0xD0);
LCD_WR_DATA8(0x04);
LCD_WR_DATA8(0x0D);
LCD_WR_DATA8(0x11);
LCD_WR_DATA8(0x13);
LCD_WR_DATA8(0x2B);
LCD_WR_DATA8(0x3F);
LCD_WR_DATA8(0x54);
LCD_WR_DATA8(0x4C);
LCD_WR_DATA8(0x18);
LCD_WR_DATA8(0x0D);
LCD_WR_DATA8(0x0B);
LCD_WR_DATA8(0x1F);
LCD_WR_DATA8(0x23);
LCD_WR_REG(0xE1); //<2F><><EFBFBD><EFBFBD>ѹ٤<D1B9><D9A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
LCD_WR_DATA8(0xD0);
LCD_WR_DATA8(0x04);
LCD_WR_DATA8(0x0C);
LCD_WR_DATA8(0x11);
LCD_WR_DATA8(0x13);
LCD_WR_DATA8(0x2C);
LCD_WR_DATA8(0x3F);
LCD_WR_DATA8(0x44);
LCD_WR_DATA8(0x51);
LCD_WR_DATA8(0x2F);
LCD_WR_DATA8(0x1F);
LCD_WR_DATA8(0x1F);
LCD_WR_DATA8(0x20);
LCD_WR_DATA8(0x23);
LCD_WR_REG(0x21); //<2F><>ʾ<EFBFBD><CABE>ת<EFBFBD><D7AA>
LCD_WR_REG(0x11); //<2F>˳<EFBFBD><CBB3><EFBFBD><EFBFBD><EFBFBD>
delay_ms (120);
LCD_WR_REG(0x29); //<2F><><EFBFBD><EFBFBD>ʾ
delay_ms (200);
LCD_Display_Dir(LCD_DIR_Mode); //ѡ<><D1A1>--<2D><>Ļ<EFBFBD><C4BB>ʾ<EFBFBD><CABE>ʽ
LCD_BLK_On; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
LCD_Clear(WHITE);
}
//////////////////<2F><><EFBFBD>º<EFBFBD><C2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>ʾͼ<CABE>εļ<CEB5><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>////////////DevEBox <20><>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD>//////shop389957290.taobao.com//////////////////////////////////////
/*******************************************************************************/
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>void LCD_Clear(u16 color)
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E4BAAF>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//color:Ҫ<><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
//DevEBox <20><>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD>
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>mcudev.taobao.com
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>shop389957290.taobao.com
/*******************************************************************************/
void LCD_Clear(u16 color)
{
u32 index=0;
u32 totalpoint;
LCD_Set_Window(0,0,lcddev.width,lcddev.height);//<2F><><EFBFBD><EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
totalpoint=lcddev.width * lcddev.height; //<2F>õ<EFBFBD><C3B5>ܵ<EFBFBD><DCB5><EFBFBD>
LCD_SetCursor(0x00,0x00); //<2F><><EFBFBD>ù<EFBFBD><C3B9><EFBFBD>λ<EFBFBD><CEBB>
LCD_WriteRAM_Prepare(); //<2F><>ʼд<CABC><D0B4>GRAM
for(index=0;index<totalpoint;index++)
{
LCD_WR_DATA16(color);
}
}
/*******************************************************************************/
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>void LCD_Fill(u16 sx,u16 sy,u16 ex,u16 ey,u16 color)
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E4BAAF>--<2D><><EFBFBD><EFBFBD><E4B5A5><EFBFBD><EFBFBD>ɫ
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E4B5A5><EFBFBD><EFBFBD>ɫ
//(sx,sy),(ex,ey):<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ζԽ<CEB6><D4BD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>СΪ:(ex-sx+1)*(ey-sy+1)
//color:Ҫ<><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
//DevEBox <20><>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD>
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>mcudev.taobao.com
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>shop389957290.taobao.com
/*******************************************************************************/
void LCD_Fill(u16 sx,u16 sy,u16 ex,u16 ey,u16 color)
{
u32 i;
u32 xlen=0;
//<2F><><EFBFBD>ô<EFBFBD><C3B4><EFBFBD>
LCD_Set_Window(sx,sy,ex-sx+1,ey-sy+1);//<2F><><EFBFBD>ô<EFBFBD><C3B4><EFBFBD>
LCD_WR_REG(lcddev.wramcmd);
xlen=(ex-sx+1)*(ey-sy+1);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܹ<EFBFBD><DCB9><EFBFBD>Ҫд<D2AA><D0B4><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD>
LCD_WriteRAM_Prepare(); //<2F><>ʼд<CABC><D0B4>GRAM
for(i=0;i<=xlen;i++)
{
LCD_WR_DATA16(color); //<2F><>ʾ<EFBFBD><CABE>ɫ
}
//<2F>ָ<EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>Χ
LCD_Set_Window(0,0,lcddev.width,lcddev.height);//<2F><><EFBFBD><EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
/*******************************************************************************/
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>void LCD_Color_Fill(u16 sx,u16 sy,u16 ex,u16 ey,u16 *color)
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E4BAAF>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB>
//(sx,sy),(ex,ey):<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ζԽ<CEB6><D4BD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>СΪ:(ex-sx+1)*(ey-sy+1)
//color:Ҫ<><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
//DevEBox <20><>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD>
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>mcudev.taobao.com
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>shop389957290.taobao.com
/*******************************************************************************/
void LCD_Color_Fill(u16 sx,u16 sy,u16 ex,u16 ey,u16 *color)
{
u32 i;
u32 xlen=0;
//<2F><><EFBFBD>ô<EFBFBD><C3B4><EFBFBD>
LCD_Set_Window(sx,sy,ex-sx+1,ey-sy+1);//<2F><><EFBFBD>ô<EFBFBD><C3B4><EFBFBD>
LCD_WR_REG(lcddev.wramcmd);
xlen=(ex-sx+1)*(ey-sy+1);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܹ<EFBFBD><DCB9><EFBFBD>Ҫд<D2AA><D0B4><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD>
LCD_WriteRAM_Prepare(); //<2F><>ʼд<CABC><D0B4>GRAM
for(i=0;i<=xlen;i++)
{
LCD_WR_DATA16(*color); //<2F><>ʾ<EFBFBD><CABE>ɫ
}
//<2F>ָ<EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>Χ
LCD_Set_Window(0,0,lcddev.width,lcddev.height);//<2F><><EFBFBD><EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
/*******************************************************************************/
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>void LCD_DrawLine(u16 x1, u16 y1, u16 x2, u16 y2)
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//x1,y1:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//x2,y2:<3A>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD>
//Color;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
//DevEBox <20><>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD>
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>mcudev.taobao.com
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>shop389957290.taobao.com
/*******************************************************************************/
void LCD_DrawLine(u16 x1, u16 y1, u16 x2, u16 y2, u16 Color)
{
u16 t;
int xerr=0,yerr=0,delta_x,delta_y,distance;
int incx,incy,uRow,uCol;
delta_x=x2-x1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
delta_y=y2-y1;
uRow=x1;
uCol=y1;
if(delta_x>0)incx=1; //<2F><><EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
else if(delta_x==0)incx=0;//<2F><>ֱ<EFBFBD><D6B1>
else
{
incx=-1;
delta_x=-delta_x;
}
if(delta_y>0)incy=1;
else if(delta_y==0)incy=0;//ˮƽ<CBAE><C6BD>
else
{
incy=-1;
delta_y=-delta_y;
}
if( delta_x>delta_y)distance=delta_x; //ѡȡ<D1A1><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
else distance=delta_y;
for(t=0;t<=distance+1;t++ )//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
LCD_Fast_DrawPoint(uRow,uCol,Color);//<2F><><EFBFBD><EFBFBD> --ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>
xerr+=delta_x ;
yerr+=delta_y ;
if(xerr>distance)
{
xerr-=distance;
uRow+=incx;
}
if(yerr>distance)
{
yerr-=distance;
uCol+=incy;
}
}
}
/*******************************************************************************/
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>void LCD_DrawLine(u16 x1, u16 y1, u16 x2, u16 y2)
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//(x1,y1),(x2,y2):<3A><><EFBFBD>εĶԽ<C4B6><D4BD><EFBFBD><EFBFBD><EFBFBD>
//Color;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
//DevEBox <20><>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD>
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>mcudev.taobao.com
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>shop389957290.taobao.com
/*******************************************************************************/
void LCD_DrawRectangle(u16 x1, u16 y1, u16 x2, u16 y2, u16 Color)
{
LCD_DrawLine(x1,y1,x2,y1,Color);
LCD_DrawLine(x1,y1,x1,y2,Color);
LCD_DrawLine(x1,y2,x2,y2,Color);
LCD_DrawLine(x2,y1,x2,y2,Color);
}
/*******************************************************************************/
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>void LCD_Draw_Circle(u16 x0,u16 y0,u8 r)
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD>ָ<EFBFBD><D6B8>λ<EFBFBD>û<EFBFBD>һ<EFBFBD><D2BB>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>С<EFBFBD><D0A1>Բ
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//(x,y):<3A><><EFBFBD>ĵ<EFBFBD>
//r :<3A>
//Color;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
//DevEBox <20><>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD>
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>mcudev.taobao.com
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>shop389957290.taobao.com
/*******************************************************************************/
void LCD_Draw_Circle(u16 x0,u16 y0,u8 r, u16 Color)
{
int a,b;
int di;
a=0;b=r;
di=3-(r<<1); //<2F>ж<EFBFBD><D0B6>¸<EFBFBD><C2B8><EFBFBD>λ<EFBFBD>õı<C3B5>־
while(a<=b)
{
LCD_Fast_DrawPoint(x0+a,y0-b,Color); //5
LCD_Fast_DrawPoint(x0+b,y0-a,Color); //0
LCD_Fast_DrawPoint(x0+b,y0+a,Color); //4
LCD_Fast_DrawPoint(x0+a,y0+b,Color); //6
LCD_Fast_DrawPoint(x0-a,y0+b,Color); //1
LCD_Fast_DrawPoint(x0-b,y0+a,Color);
LCD_Fast_DrawPoint(x0-a,y0-b,Color); //2
LCD_Fast_DrawPoint(x0-b,y0-a,Color); //7
a++;
//ʹ<><CAB9>Bresenham<61><EFBFBD><E3B7A8>Բ
if(di<0)di +=4*a+6;
else
{
di+=10+4*(a-b);
b--;
}
}
}
/*******************************************************************************/
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>LCD_ShowChar(u16 x,u16 y,u8 num,u8 size,u16 color,u8 mode)
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD>ָ<EFBFBD><D6B8>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>ʾһ<CABE><D2BB><EFBFBD>ַ<EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//x,y:<3A><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
//num:Ҫ<><D2AA>ʾ<EFBFBD><CABE><EFBFBD>ַ<EFBFBD>:" "--->"~"
//size:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С 12/16/24
//color,<2C>ַ<EFBFBD><D6B7><EFBFBD>ɫ
//mode:<3A><><EFBFBD>ӷ<EFBFBD>ʽ(1)<29><><EFBFBD>Ƿǵ<C7B7><C7B5>ӷ<EFBFBD>ʽ(0)
//DevEBox <20><>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD>
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>mcudev.taobao.com
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>shop389957290.taobao.com
/*******************************************************************************/
void LCD_ShowChar(u16 x,u16 y,u8 num,u8 size,u16 color,u8 mode)
{
u8 temp,t1,t;
u16 y0=y;
u8 csize=(size/8+((size%8)?1:0))*(size/2); //<2F>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD><D5BC><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD>
//<2F><><EFBFBD>ô<EFBFBD><C3B4><EFBFBD>
num=num-' ';//<2F>õ<EFBFBD>ƫ<EFBFBD>ƺ<EFBFBD><C6BA><EFBFBD>ֵ
for(t=0;t<csize;t++)
{
if(size==12)temp=asc2_1206[num][t]; //<2F><><EFBFBD><EFBFBD>1206<30><36><EFBFBD><EFBFBD>
else if(size==16)temp=asc2_1608[num][t]; //<2F><><EFBFBD><EFBFBD>1608<30><38><EFBFBD><EFBFBD>
else if(size==24)temp=asc2_2412[num][t]; //<2F><><EFBFBD><EFBFBD>2412<31><32><EFBFBD><EFBFBD>
else return; //û<>е<EFBFBD><D0B5>ֿ<EFBFBD>
for(t1=0;t1<8;t1++)
{
if(temp&0x80)LCD_Fast_DrawPoint(x,y,color);
else if(mode==0)LCD_Fast_DrawPoint(x,y,BACK_COLOR);
temp<<=1;
y++;
if(y>=lcddev.height)return; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if((y-y0)==size)
{
y=y0;
x++;
if(x>=lcddev.width)return; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
break;
}
}
}
}
/*******************************************************************************/
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>u32 LCD_Pow(u8 m,u8 n)
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD>m^n<><6E><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><38><CEBB><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD>ֵ:m^n<>η<EFBFBD>.
//DevEBox <20><>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD>
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>mcudev.taobao.com
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>shop389957290.taobao.com
/*******************************************************************************/
u32 LCD_Pow(u8 m,u8 n)
{
u32 result=1;
while(n--)result*=m;
return result;
}
/*******************************************************************************/
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>void LCD_ShowNum(u16 x,u16 y,u32 num,u8 len,u8 size,u16 color)
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>,<2C><>λΪ0,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//x,y :<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//num:<3A><>ֵ(0~4294967295);
//len :<3A><><EFBFBD>ֵ<EFBFBD>λ<EFBFBD><CEBB>
//size:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С
//color:<3A><>ɫ
//<2F><><EFBFBD><EFBFBD>ֵ:<3A><>
//DevEBox <20><>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD>
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>mcudev.taobao.com
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>shop389957290.taobao.com
/*******************************************************************************/
void LCD_ShowNum(u16 x,u16 y,u32 num,u8 len,u8 size,u16 color)
{
u8 t,temp;
u8 enshow=0;
for(t=0;t<len;t++)
{
temp=(num/LCD_Pow(10,len-t-1))%10;
if(enshow==0&&t<(len-1))
{
if(temp==0)
{
LCD_ShowChar(x+(size/2)*t,y,' ',size,color,0);
continue;
}else enshow=1;
}
LCD_ShowChar(x+(size/2)*t,y,temp+'0',size,color,0);
}
}
/*******************************************************************************/
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>void LCD_ShowxNum(u16 x,u16 y,u32 num,u8 len,u8 size,u16 color,u8 mode)
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>,<2C><>λΪ0,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>,<2C><>λΪ0,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
//x,y:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//num:<3A><>ֵ(0~999999999);
//len:<3A><><EFBFBD><EFBFBD>(<28><>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD><CABE>λ<EFBFBD><CEBB>)
//size:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С
//color:<3A><>ɫ
//mode:
//[7]:0,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;1,<2C><><EFBFBD><EFBFBD>0.
//[6:1]:<3A><><EFBFBD><EFBFBD>
//[0]:0,<2C>ǵ<EFBFBD><C7B5><EFBFBD><EFBFBD><EFBFBD>ʾ;1,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ.
//DevEBox <20><>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD>
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>mcudev.taobao.com
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>shop389957290.taobao.com
/*******************************************************************************/
void LCD_ShowxNum(u16 x,u16 y,u32 num,u8 len,u8 size,u16 color,u8 mode)
{
u8 t,temp;
u8 enshow=0;
for(t=0;t<len;t++)
{
temp=(num/LCD_Pow(10,len-t-1))%10;
if(enshow==0&&t<(len-1))
{
if(temp==0)
{
if(mode&0X80)LCD_ShowChar(x+(size/2)*t,y,'0',size,color,mode&0X01);
else LCD_ShowChar(x+(size/2)*t,y,' ',size,color,mode&0X01);
continue;
}else enshow=1;
}
LCD_ShowChar(x+(size/2)*t,y,temp+'0',size,color,mode&0X01);
}
}
/*******************************************************************************/
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>void LCD_ShowString(u16 x,u16 y,u16 width,u16 height,u8 size,u16 color,u8 *p)
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD>ʾ<EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//x,y:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//width,height:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С
//size:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С
//color:<3A><>ɫ
//*p:<3A>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>ַ
//DevEBox <20><>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD>
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>mcudev.taobao.com
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>shop389957290.taobao.com
/*******************************************************************************/
void LCD_ShowString(u16 x,u16 y,u16 width,u16 height,u8 size,u16 color,u8 *p)
{
u8 x0=x;
width+=x;
height+=y;
while((*p<='~')&&(*p>=' '))//<2F>ж<EFBFBD><D0B6>Dz<EFBFBD><C7B2>ǷǷ<C7B7><C7B7>ַ<EFBFBD>!
{
if(x>=width){x=x0;y+=size;}
if(y>=height)break;//<2F>˳<EFBFBD>
LCD_ShowChar(x,y,*p,size,color,0);
x+=size/2;
p++;
}
}
//****************************************************************************************/
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>void DisplayButtonDown(u16 x1,u16 y1,u16 x2,u16 y2)
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>ʾһ͹<D2BB><CDB9><EFBFBD>İ<EFBFBD>ť<EFBFBD><C5A5>
//<2F><> <20><>: u16 x1,y1,x2,y2 <20><>ť<EFBFBD><C5A5><EFBFBD><EFBFBD><EFBFBD>ϽǺ<CFBD><C7BA><EFBFBD><EFBFBD>½<EFBFBD><C2BD><EFBFBD><EFBFBD><EFBFBD>
//<2F><> <20><>: <20><>
//DevEBox <20><>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD>
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>mcudev.taobao.com
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>shop389957290.taobao.com
/****************************************************************************************/
void DisplayButtonDown(u16 x1,u16 y1,u16 x2,u16 y2)
{
LCD_DrawLine(x1,y1, x2,y1,GRAY2); //H
LCD_DrawLine(x1+1,y1+1,x2,y1+1,GRAY1); //H
LCD_DrawLine(x1, y1, x1,y2,GRAY2); //V
LCD_DrawLine(x1+1,y1+1,x1+1,y2,GRAY1); //V
LCD_DrawLine(x1, y2, x2, y2,WHITE); //H
LCD_DrawLine(x2, y1, x2, y2,WHITE); //V
}
//****************************************************************************************/
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>void DisplayButtonUp(u16 x1,u16 y1,u16 x2,u16 y2)
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>ʾһ<CABE><D2BB><EFBFBD>µİ<C2B5>ť<EFBFBD><C5A5>
//<2F><> <20><>: u16 x1,y1,x2,y2 <20><>ť<EFBFBD><C5A5><EFBFBD><EFBFBD><EFBFBD>ϽǺ<CFBD><C7BA><EFBFBD><EFBFBD>½<EFBFBD><C2BD><EFBFBD><EFBFBD><EFBFBD>
//<2F><> <20><>: <20><>
//DevEBox <20><>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD>
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>mcudev.taobao.com
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>shop389957290.taobao.com
/****************************************************************************************/
void DisplayButtonUp(u16 x1,u16 y1,u16 x2,u16 y2)
{
LCD_DrawLine(x1, y1, x2,y1,WHITE); //H
LCD_DrawLine(x1, y1, x1,y2,WHITE); //V
LCD_DrawLine(x1+1,y2-1,x2,y2-1,GRAY1); //H
LCD_DrawLine(x1, y2, x2,y2,GRAY2); //H
LCD_DrawLine(x2-1,y1+1,x2-1,y2,GRAY1); //V
LCD_DrawLine(x2 ,y1 ,x2,y2,GRAY2); //V
}
//****************************************************************************************/
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>void Draw_Test(void)
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><><EFBFBD><EFBFBD>ͼ<EFBFBD>κ<EFBFBD><CEBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//DevEBox <20><>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD>
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>mcudev.taobao.com
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>shop389957290.taobao.com
/****************************************************************************************/
void Draw_Test(void)
{
LCD_Clear(WHITE); //<2F><><EFBFBD><EFBFBD>
LCD_DrawLine(20,64, 220,128,RED);//<2F><><EFBFBD>ߺ<EFBFBD><DFBA><EFBFBD>
LCD_DrawLine(20,128, 220,64,RED);//<2F><><EFBFBD>ߺ<EFBFBD><DFBA><EFBFBD>
LCD_DrawRectangle(20,64,220,128, BLUE);//<2F><><EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD>״
LCD_Draw_Circle(120,96,81, BRED);//<2F><><EFBFBD><EFBFBD>Բ<EFBFBD><D4B2>
LCD_Draw_Circle(120,96,80, BRED);//<2F><><EFBFBD><EFBFBD>Բ<EFBFBD><D4B2>
LCD_Draw_Circle(120,96,79, BRED);//<2F><><EFBFBD><EFBFBD>Բ<EFBFBD><D4B2>
delay_ms(2000);//<2F><>ʱ
}
//****************************************************************************************/
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>void Color_Test(void)
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
//DevEBox <20><>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD>
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>mcudev.taobao.com
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>shop389957290.taobao.com
/****************************************************************************************/
void Color_Test(void)
{
LCD_Clear(GRAY0); //<2F><><EFBFBD><EFBFBD>
Draw_Font16B(24,16,BLUE,"1: <20><>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
LCD_Fill(5,5,lcddev.width-5,lcddev.height-5,RED);//<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD>д<EFBFBD><D0B4>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
LCD_Fill(20,20,lcddev.width-20,lcddev.height-20,YELLOW);//<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD>д<EFBFBD><D0B4>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
LCD_Fill(50,50,lcddev.width-50,lcddev.height-50,BLUE);//<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD>д<EFBFBD><D0B4>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
LCD_Fill(80,100,lcddev.width-80,lcddev.height-80,MAGENTA);//<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD>д<EFBFBD><D0B4>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
delay_ms(2000);
LCD_Clear(WHITE);
Draw_Test();//<2F><>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
delay_ms(300);//<2F><>ʱ
LCD_Clear(BLACK);
delay_ms(300);//<2F><>ʱ
LCD_Clear(RED);
delay_ms(300);//<2F><>ʱ
LCD_Clear(YELLOW);
delay_ms(300);//<2F><>ʱ
LCD_Clear(GREEN);
delay_ms(300);//<2F><>ʱ
LCD_Clear(BLUE);
delay_ms(300);//<2F><>ʱ
}
uint16_t D_Color=BLUE; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
uint16_t B_Color=WHITE; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
//****************************************************************************************/
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>void Font_Test(void)
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
//DevEBox <20><>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD>
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>mcudev.taobao.com
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>shop389957290.taobao.com
/****************************************************************************************/
void Font_Test(void)
{
LCD_Clear(GRAY0);
Draw_Font16B(24,16,BLUE,"2: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>");
delay_ms(1000);
LCD_Clear(GRAY0);
Draw_Font24B(16,4,BLACK,"DevEBox-<2D><>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD>");
Draw_Font24B(48,32,BLACK,"Һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
Draw_Font16B(24,80, BLACK,"Ƕ<EFBFBD><EFBFBD>ʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
Draw_Font16B(24,96, GREEN,"<EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD><EFBFBD><EFBFBD>");
Draw_Font16B(24,112,BLUE,"רעҺ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
Draw_Font16B(24,128,RED, "ȫ<EFBFBD>̼<EFBFBD><EFBFBD><EFBFBD>֧<EFBFBD><EFBFBD>");
Draw_Font16B(16,144,BLUE,"F: mcudev.taobao.com");
Draw_Font16B(16,160,BLUE,"F: shop389957290.taobao.com");
Draw_Font16B(16,176,RED,"0123456789 ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz");
delay_ms(3000);
LCD_Clear(GRAY0);
}
//****************************************************************************************/
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>void Demo_Menu(void)
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD>
//DevEBox <20><>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD>
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>mcudev.taobao.com
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>shop389957290.taobao.com
/****************************************************************************************/
void Demo_Menu(void)
{
LCD_Clear(GRAY0); //<2F><><EFBFBD><EFBFBD>
Draw_Font24B(16,4,MAGENTA,"DevEBox-<2D><>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD>");
Draw_Font24B(48,32,MAGENTA,"Һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
DisplayButtonUp(16,64,224,88); //x1,y1,x2,y2
Draw_Font16B(48,68,BLUE,"1: <20><>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
DisplayButtonUp(16,104,224,128); //x1,y1,x2,y2
Draw_Font16B(48,108,BLUE,"2: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>");
DisplayButtonUp(16,144,224,168); //x1,y1,x2,y2
Draw_Font16B(48,148,BLUE,"3: ͼƬ<CDBC><C6AC>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>");
Draw_Font16B(16,180,RED,"F: mcudev.taobao.com");
Draw_Font16B(16,196,RED,"F: shop389957290.taobao.com");
delay_ms(2000);//<2F><>ʱ
Color_Test(); //<2F><>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Font_Test(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
GBK_LibFont_Test(); //GBK<42>ֿ<EFBFBD><D6BF><EFBFBD><EFBFBD><EFBFBD>
//Show_Picture(); //<2F><>ʾһ<CABE><D2BB>ͼƬ--ͼƬ̫<C6AC><CCAB><EFBFBD><EFBFBD>оƬ<D0BE>ڲ<EFBFBD><DAB2><EFBFBD><E6B4A2><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD><C3A3>˲<EFBFBD><CBB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
/************************************************************************************************/
//STM32H7<48><37><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>-HAL<41><EFBFBD><E2BAAF><EFBFBD>
//DevEBox <20><>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD>
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>mcudev.taobao.com
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>shop389957290.taobao.com
/************************************************************************************************/