任务场景:
使用一块(非正点原子的)STM32F407核心板,外接正点原子的4.3寸电容屏时遇到的问题
问题描述:
反复检查硬件接口对上之后,还是会出现开机屏幕闪一下,然后全黑的问题。
并且,同一份代码,接在正点原子开发板上可以正常使用,接在另一块不是正点原子的核心板上就不能使用。
调试找问题:
逐行运行调试代码,进入 LCD_Init() 函数
在GPIO配置完之后屏幕会正常亮白色,但是跳出 LCD_Init() 之后就变黑,说明初始化配置下面的代码中有不兼容的地方。
逐行调试到 LCD_Init() 最下面三行函数的时候找到了问题——执行完 LCD_LED=0 之后屏幕灭了。
void LCD_Init(void)
{
......
// 最下面三行
LCD_Display_Dir(0); //横屏(1)还是竖屏(0)
LCD_LED=0; //点亮背光
LCD_Clear(WHITE);
}
在头文件 lcd.h 中可以找到 LCD_LED 的宏定义:
///
//-----------------LCD端口定义----------------
#define LCD_LED PBout(15) //LCD背光 PB15
对应的原理图引脚是:
而查了一下我那块不是正点原子的核心板的LCD接口原理图之后:
发现这块核心板的 LCD_BL 上接了一个三极管的反相电路!!!
解决方案:
于是,把 LCD_LED=0 改为 LCD_LED=1 即可解决问题。
void LCD_Init(void)
{
......
// 最下面三行
LCD_Display_Dir(0); //横屏(1)还是竖屏(0)
LCD_LED=1; //点亮背光
LCD_Clear(WHITE);
}
评论(0)
您还未登录,请登录后发表或查看评论