OpenEdv-开源电子网

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

是LCD奇葩,还是keil奇葩了?

[复制链接]

48

主题

537

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
1367
金钱
1367
注册时间
2014-2-13
在线时间
169 小时
发表于 2014-9-3 16:02:14 | 显示全部楼层 |阅读模式
5金钱
这周的事奇葩连连看啊,至今我还无法判断到底问题出在哪。看看各位大侠有没有遇到这种事情的。

起因:原先在战舰上写好的工程,新作了板然后在移植过程中出现的各种奇葩事。主要移植的部分是IO和外设、LCD(R61529驱动),硬件部分已经实现测试完成,包括SPI驱动W25Q64、FSMC驱动SRAM和LCD,当移植到整个工程里时问题出现了。

过程:
    奇葩事1:在移植LCD初始化程序是遇到一个地方不写一句“i++;”(位置:初始化完所有的LCD寄存器),LCD初始化后就什么也不显示,不要说这里需要是什么延时之类的,没用试过了,除了“i++;”加多大的延时它都不好使。死机位置同下。
    奇葩事2:这也是迄今我仍未解决的问题。在工程中出现使用结构体的地方,只要编译进去,程序就会死在LCD初始化里面。位置:
配置第一个寄存器的的写数据时死机。。。
[mw_shl_code=c,true] WriteComm(0xB0); printf("LCD1\r\n"); WriteData(0x04); printf("LCD2\r\n");[/mw_shl_code]
这个问题非常严重,而且非常非常奇葩!!!因为同一个结构体,刚开始移植死,调着调着突然好了,其实代码一点也没变。。。然后下面在遇到使用这个结构体时,又开始死机,位置同上。
第一次死的起因(后来又好了):
[mw_shl_code=c,true]LCD_DrawRectangle(bar.sx, bar.sy, bar.ex, bar.ey);//画矩形[/mw_shl_code]
第二次死的起因(至今未好):
[mw_shl_code=c,true]// bar.val_old = bar.val; // bar.val = ((u8)bar.val-1)%100;[/mw_shl_code]
这个工程实在战舰上写好的,硬件部分已经全部单独调试通过了,所以不应该是硬件问题。LCD也是裸跑加实时操作系统跑过的,况且在战舰上搭线驱动新屏也是状况相同的。试过了我能想到的所有办法去调试了,重建工程、换屏、用战舰测试、keil换版本、在别的电脑编译,都无法解决。不过矛盾还是比较明显的,1、问题始终围绕着LCD;2、keil时好时坏(也可能是液晶时好时坏)。
硬件:
    单片机:STM32F103ZE
    液晶:信利IPS3.5寸,320X480,驱动R61529

电脑:
    windows8,64位
    keil5.11a,后又卸掉改装keil4.7







最佳答案

查看完整内容[请看2#楼]

回复【5楼】正点原子: --------------------------------- 今天把优化等级改成默认了,然后好使了。。。之前优化等级是0,一直都没问题,换了块屏就不好使了。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

48

主题

537

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
1367
金钱
1367
注册时间
2014-2-13
在线时间
169 小时
 楼主| 发表于 2014-9-3 16:02:15 | 显示全部楼层
回复【5楼】正点原子:
---------------------------------
今天把优化等级改成默认了,然后好使了。。。之前优化等级是0,一直都没问题,换了块屏就不好使了。
回复

使用道具 举报

48

主题

537

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
1367
金钱
1367
注册时间
2014-2-13
在线时间
169 小时
 楼主| 发表于 2014-9-3 17:52:59 | 显示全部楼层
顶顶......
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2014-9-3 19:04:54 | 显示全部楼层
这么奇葩,还真没遇到过
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复

使用道具 举报

28

主题

1489

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1656
金钱
1656
注册时间
2013-7-24
在线时间
1 小时
发表于 2014-9-3 20:33:55 | 显示全部楼层
有意思,可以给别人试试。
于20150522停用该账号:http://www.microstar.club
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2014-9-3 23:48:32 | 显示全部楼层
光你贴出来的这些代码,看不出问题。
你看看MDK的编译设置,是不是选择-O2优化了?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
27
金钱
27
注册时间
2018-6-22
在线时间
2 小时
发表于 2018-6-22 21:11:57 | 显示全部楼层
哥们,我也遇到同样问题了,你最后是怎么解决的
回复

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
27
金钱
27
注册时间
2018-6-22
在线时间
2 小时
发表于 2018-6-22 21:14:00 | 显示全部楼层
我的比你还夸张呢,最夸张的是,同一个插线板,换个插线位置,这个位置行,那个位置不行,把我郁闷的呀,真不知道怎么说。
回复

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
27
金钱
27
注册时间
2018-6-22
在线时间
2 小时
发表于 2018-6-22 21:22:38 | 显示全部楼层
硬件肯定没问题,因为做了20台,同样的液晶,出现问题的目前发现两台,最关键的是问题不是时刻出现,有可能家里不出问题,出去出问题,死屏都发生在开机时刻,跟你差不多,我是用UCGUI进度条,要死就死在这个进度条,后面不管怎样都不死,(连续运行几天,一两个月也不会死,因为有产品卖给客户,已经几个月了,我的产品是会一直运行的,不会停)加干扰都不会死,郁闷得呀,找不到原因,我想大概还是软件的问题,但是不管怎么改,就是找不到解决方案,急死了。
回复

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
27
金钱
27
注册时间
2018-6-22
在线时间
2 小时
发表于 2018-6-22 21:30:05 | 显示全部楼层
如果是硬件的问题,应该在其他程序位置也会出现问题,但是不会,运行几个月都不出问题,我做这个产品时间从15年开始的,谨慎期间,产品测试了将近一年,目前只有一个问题不能解决,就是莫名其妙的,开机进度条会死掉,不是程序死,程序可以知道没有死,正常在运行,因为可以测试其他输出,都是按照设计输出的,给输入变化,输出也会根据输入变化做相应输出改变。就是屏幕死掉不动了。所以问题只是TFT,而且这个问题很可怕,改的方案可能这台行,那台不行,我想知道你最后是怎么解决的,要是只是优化改下等级,这个真是能把人给气死。
回复

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
27
金钱
27
注册时间
2018-6-22
在线时间
2 小时
发表于 2018-6-22 21:35:10 | 显示全部楼层
而且要出问题,就出在这个3.5寸的液晶,换个两种,以前那种出问题更大,现在用的这种还好点,其他用过2.6,3.6.4.0.4.3,4.6都没发现这个问题,奶奶的,最后决定用这个3.5,因为供应商说这个是常规的,供货最稳定,最成熟,结果死就死在这个3.5上了。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-26 02:22

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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