OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5273|回复: 1

5510 TFTLCD 颜色显示问题

[复制链接]

1

主题

1

帖子

0

精华

新手入门

积分
6
金钱
6
注册时间
2021-6-27
在线时间
3 小时
发表于 2021-7-7 18:21:17 | 显示全部楼层 |阅读模式
4金钱
能够读到ID,但是我往LCD画个矩形图,图形能够显示出来,但是内部填充的颜色除了白色和黑色,使用其余颜色就会一直闪烁!!!新人小白,求各位大神指教!

LCD.C
void LCD_WriteReg(uint16_t cmd,uint16_t date)
{
       
       
        *(__IO uint16_t*)(LCD_DATE_Addr)=date;
  *(__IO uint16_t*)(LCD_CMD_Addr)=cmd;
       
}
//写数据
void LCD_Write_Date(uint16_t date)
{
        __IO uint16_t *p=(__IO uint16_t*)(LCD_DATE_Addr);
        *p=date;
}
//写指令
void LCD_WR_REG(uint16_t cmd)
{
        __IO uint16_t *p=(__IO uint16_t*)(LCD_CMD_Addr);
        *p=cmd;
}
//读数据Y
uint16_t LCD_Read_Date(void)
{
        __IO uint16_t *p=(__IO uint16_t*)(LCD_DATE_Addr);
        return *p;
}
//读指令
uint16_t LCD_Read_CMD(void)
{
        __IO uint16_t *p=(__IO uint16_t*)(LCD_CMD_Addr);
        return *p;
}
//开背光
void LCD_BackLight(uint8_t state)
{
if(state==1)
        GPIO_SetBits(GPIOB,GPIO_Pin_15);
        else
        GPIO_ResetBits(GPIOB,GPIO_Pin_15);
}

//读取id
uint16_t LCD_GET_ID(void)
{
        u16 id=0;
        LCD_WR_REG(0XDA00);
        id=LCD_Read_Date();
        LCD_WR_REG(0XDB00);
        id=LCD_Read_Date();
        id<<=8;       
        LCD_WR_REG(0XDc00);
        id|=LCD_Read_Date();
        if(id==0x8000)id=0x5510;
        return id;
}
//画矩形
void LCD_Draw_Rect(uint16_t x0,uint16_t x1,uint16_t y0,uint16_t y1,uint16_t color)
{
        u16 i=0;
        LCD_WR_REG(0x2a00);
        LCD_Write_Date((x0>>8)&0xff);
        LCD_WR_REG(0x2a01);
        LCD_Write_Date(x0&0xff);
        LCD_WR_REG(0x2a02);
        LCD_Write_Date((x1>>8)&0xff);
  LCD_WR_REG(0x2a03);
        LCD_Write_Date(x1&0xff);
        LCD_WR_REG(0x2b00);
        LCD_Write_Date((y0>>8)&0xff);
  LCD_WR_REG(0x2b01);
        LCD_Write_Date(y0&0xff);
        LCD_WR_REG(0x2b02);
        LCD_Write_Date((y1>>8)&0xff);
  LCD_WR_REG(0x2b03);
        LCD_Write_Date(y1&0xff);
        LCD_WR_REG(0x2c00);
       
        for(i=0;i<((x1-x0+1)*(y1-y0+1));i++)
        {
                LCD_Write_Date(color);
        }
}
main.c
int main(void)
{
        delay_init(168);
  LCD_Init();       
        LCD_REG_Config();
        LCD_BackLight(1);
       
       
        uart_init(115200);                //3&#245;ê&#188;&#187;ˉ′&#174;&#191;ú2¨ì&#216;&#194;ê&#206;a115200
        while(1)
        {       
                LCD_Draw_Rect(0,496,0,800,RED);                
        }
}



实验13 TFT LCD显示实验.rar

3 MB, 下载次数: 1

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

6

主题

890

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1477
金钱
1477
注册时间
2020-8-19
在线时间
335 小时
发表于 2021-7-8 11:41:50 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-27 11:12

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表