OpenEdv-开源电子网

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

emWin 例程 TFTLCD初始化修改,电源上电,画面无法显示

[复制链接]

2

主题

13

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
256
金钱
256
注册时间
2015-1-15
在线时间
62 小时
发表于 2020-1-3 10:22:26 | 显示全部楼层 |阅读模式
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;
}













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

使用道具 举报

1

主题

7

帖子

0

精华

初级会员

Rank: 2

积分
64
金钱
64
注册时间
2019-1-21
在线时间
17 小时
发表于 2020-1-3 19:29:33 | 显示全部楼层
我这里曾经遇到的问题和你这个有相似之处,建议检查一下屏的硬件复位控制引脚是否配置正确。我之前是忘了配置为 输出 ,导致屏的RST引脚状态不确定。
回复

使用道具 举报

2

主题

13

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
256
金钱
256
注册时间
2015-1-15
在线时间
62 小时
 楼主| 发表于 2020-1-3 21:17:40 | 显示全部楼层
pspice 发表于 2020-1-3 19:29
我这里曾经遇到的问题和你这个有相似之处,建议检查一下屏的硬件复位控制引脚是否配置正确。我之前是忘了配 ...

战舰V3 emWin学习例程里的源代码,我贴出来的代码除了红色部分LCD初始化位置进行修改,其他都没有任何改动,编译,下载,使用K2上电开机就会有问题,你可以按照这样改一下,下载看一下现象,不知道什么原因,也在怀疑是不是LCD的引脚问题

还是希望能够弄明白,每一个地方都弄明白,后面就可以自己随心随遇玩了

我现在移植了emWin直接把emWin的ram分配到了外部SRAM,没有使用内存管理实验里的方式
现在的学习中发现,我自己移植的东西占用太多ram了,在想方法怎么减少ram,辛苦奔命中。。。



回复

使用道具 举报

2

主题

13

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
256
金钱
256
注册时间
2015-1-15
在线时间
62 小时
 楼主| 发表于 2020-1-4 13:01:09 | 显示全部楼层
pspice 发表于 2020-1-3 19:29
我这里曾经遇到的问题和你这个有相似之处,建议检查一下屏的硬件复位控制引脚是否配置正确。我之前是忘了配 ...

为什么回复的信息没有显示?
回复

使用道具 举报

2

主题

13

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
256
金钱
256
注册时间
2015-1-15
在线时间
62 小时
 楼主| 发表于 2020-1-4 13:09:46 | 显示全部楼层
pspice 发表于 2020-1-3 19:29
我这里曾经遇到的问题和你这个有相似之处,建议检查一下屏的硬件复位控制引脚是否配置正确。我之前是忘了配 ...

我昨天夜里详细回复的的信息没有显示出来,不知道为什么,刚试着回复居然可以,现在再次回复你
你要是有战舰V3的板子,下载:DVD 战舰V3 资料盘(A盘)\4,程序源码\3,扩展例程\3,EMWIN扩展例程\EMWIN实验14 GUIbulider使用 章节例程
按照我提问的上面红色字体,修改,然后下载实验一下
按理说LCD初始化在哪里都可以的,但事与愿违,我也猜测可能是LCD的引脚问题,但是还是想弄明白到底是什么问题,学习过程需要刨根问底,后面才可以随心所欲
回复

使用道具 举报

1

主题

7

帖子

0

精华

初级会员

Rank: 2

积分
64
金钱
64
注册时间
2019-1-21
在线时间
17 小时
发表于 2020-1-5 07:17:01 | 显示全部楼层
幸福的小小范 发表于 2020-1-4 13:09
我昨天夜里详细回复的的信息没有显示出来,不知道为什么,刚试着回复居然可以,现在再次回复你
你要是有 ...

我也不知道为什么回复无法显示。
我那个出现问题的原因是屏的RST控制脚忘了配置为输出,导致这个脚状态不确定。
感谢你的建议。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-22 17:08

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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