中级会员
- 积分
- 256
- 金钱
- 256
- 注册时间
- 2015-1-15
- 在线时间
- 62 小时
|
1金钱
板子:战舰V3
基于裸板移植FreeRTOS,系统正常,添加emWin,系统正常,进行 EMWIN实验14 GUIbulider,发现显示有问题,问题如下:
步骤 1 操作 开发板上电,Keil5下载程序,LCD显示画面,显示正常
步骤 2 操作 把板子K2电源开关断电再上电,LCD背光亮,画面无法显示
步骤 3 操作 按RESET键,复位, LCD显示画面, 显示正常
苦于无法解决找不到原因,看 EMWIN实验14 GUIbulider使用 章节例程 ,发现我是把 TFTLCD_Init()初始化 放在 EMWIN\STemWin\Config\LCDConf_FlexColor_Template.c 的 LCD_X_DisplayDriver()中进行初始化
就会出现步骤1 步骤2 步骤3 这种现象
如果 TFTLCD_Init()初始化 放在main函数,将LCD_X_DisplayDriver()中的LCD初始化注销 步骤2 就会显示正常
后面我认真看 EMWIN实验14 GUIbulider 实验,对实验14进行以下修改,发现确实会出现问题,LCD_X_DisplayDriver()中的提示 可以放在这里进行LCD初始化
请原子哥指导,不清楚为什么?
F:\正点原子\DVD 战舰V3 资料盘(A盘)\4,程序源码\3,扩展例程\3,EMWIN扩展例程\EMWIN实验14 GUIbulider使用 章节例程int main(void)
{
OS_ERR err;
CPU_SR_ALLOC();
delay_init(); //延时函数初始化
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
uart_init(115200); //串口初始化为115200
LED_Init(); //LED端口初始化
//TFTLCD_Init(); //LCD初始化 原始在此处初始化LCD,此处我修改关闭
KEY_Init(); //按键初始化
BEEP_Init(); //初始化蜂鸣器
FSMC_SRAM_Init(); //初始化SRAM
my_mem_init(SRAMIN); //初始化内部内存池
my_mem_init(SRAMEX); //初始化外部内存池
。。。。以下略。。。
}
F:\正点原子\DVD 战舰V3 资料盘(A盘)\4,程序源码\3,扩展例程\3,EMWIN扩展例程\EMWIN实验14 GUIbulider使用\EMWIN\STemWin\Config\LCDConf_FlexColor_Template.c
//显示器驱动的回调函数
int LCD_X_DisplayDriver(unsigned LayerIndex, unsigned Cmd, void * pData) {
int r;
(void) LayerIndex;
(void) pData;
switch (Cmd) {
case LCD_X_INITCONTROLLER: {
//当初始化的时候被调用,主要是设置显示控制器,如果显示控制器在外部初始化则需要用户初始化
TFTLCD_Init(); //初始化LCD 已经在开始初始化了,所以此处不需要初始化。 //原始此处注销,我修改在此处初始化LCD
return 0;
}
default:
r = -1;
}
return r;
}
|
|