ST7735S+LCD/TFT显示颜色反转(反演)问题解决方案

作者分享了在使用0.96寸TFT屏与STM32配合时遇到的颜色反转问题,通过查阅手册和调整寄存器设置,发现是反演设置导致。博客详细介绍了OLED端口定义、控制函数和如何注释掉控制反转的代码。适合初学者参考解决类似问题。
摘要由CSDN通过智能技术生成

问题发现:
我最近买了个0.96寸TFT屏学习用STM32驱动显示屏,但是下载商家给的开机例程后发现显示的颜色与宏定义的颜色相反,在查找手册后找到了解决方案。

这是问题解决后

逛论坛发现是反演设置的问题
查找数据手册找到控制此功能的寄存器
在这里插入图片描述
可以看出0x21控制该功能

原来是我设置了反演,把它注释掉就行了:

//LCD_WR_REG(0x21); //控制反转颜色

附带函数代码及宏定义

//-----------------OLED端口定义----------------  					   
#define OLED_SCLK_Clr() GPIO_ResetBits(GPIOA,GPIO_Pin_5)//CLK
#define OLED_SCLK_Set() GPIO_SetBits(GPIOA,GPIO_Pin_5)

#define OLED_SDIN_Clr() GPIO_ResetBits(GPIOA,GPIO_Pin_7)//DIN
#define OLED_SDIN_Set() GPIO_SetBits(GPIOA,GPIO_Pin_7)

#define OLED_RST_Clr()  GPIO_ResetBits(GPIOB,GPIO_Pin_0)//RES
#define OLED_RST_Set()  GPIO_SetBits(GPIOB,GPIO_Pin_0)

#define OLED_DC_Clr()   GPIO_ResetBits(GPIOB,GPIO_Pin_1)//DC
#define OLED_DC_Set()   GPIO_SetBits(GPIOB,GPIO_Pin_1)
 		     
#define OLED_CS_Clr()   GPIO_ResetBits(GPIOA,GPIO_Pin_4)//CS
#define OLED_CS_Set()   GPIO_SetBits(GPIOA,GPIO_Pin_4)

#define OLED_BLK_Clr()  GPIO_ResetBits(GPIOB,GPIO_Pin_10)//BLK
#define OLED_BLK_Set()  GPIO_SetBits(GPIOB,GPIO_Pin_10)

#define OLED_CMD  0	//写命令
#define OLED_DATA 1	//写数据

void LCD_Writ_Bus(u8 dat) 
{	
	u8 i;
	OLED_CS_Clr();
	for(i=0;i<8;i++)
	{			  
		OLED_SCLK_Clr();
		if(dat&0x80)
		   OLED_SDIN_Set();
		else
		   OLED_SDIN_Clr();
		OLED_SCLK_Set();
		dat<<=1;
	}	
  OLED_CS_Set();	
}
void LCD_WR_REG(u8 dat)
{
	OLED_DC_Clr();//写命令
	LCD_Writ_Bus(dat);
}

问题成功解决!

这是问题解决前
刚开始学习显示屏的使用,如有笔误还请指正。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值