共2条
1/1 1 跳转至页
2131,LCD 我在2131上点不亮LCD
问
我是在深圳耀宇公司买的128*64的LCD屏幕
然后将所给的软件编译出HEX文件后烧入FLASH
当中编译的时候出现过以下警告:
Warning : C2892E: signed constant overflow: '<<'
lcmdrv.c line 233
C:\Documents and Settings\Administrator\桌面\4.6.8-菜单功能演示\GUI_MenuIco\src\lcmdrv.c: 1 warning, 0 errors, 0 serious errors
================================================================================
Image component sizes
Code RO Data RW Data ZI Data Debug
18300 3216 2 7282 101972 Object Totals
1436 0 0 324 1204 Library Totals
================================================================================
Code RO Data RW Data ZI Data Debug
19736 3216 2 7606 103176 Grand Totals
================================================================================
Total RO Size(Code + RO Data) 22952 ( 22.41kB)
Total RW Size(RW Data + ZI Data) 7608 ( 7.43kB)
Total ROM Size(Code + RO Data + RW Data) 22954 ( 22.42kB)
================================================================================
Translation to Intel 32 bit Hex format successful.
但结果LCD只是亮着,并无任何图形的显示。
如果可以,能告知为什么吗?(我只是将UCOS-II 2.52的源代码拷到SOURSE中) 答 1: ?头有点大了是否和LCD的电压有关,应该是什么出了问题呢? 答 2: 有的要加2K左右的电阻 答 3: 回复主题:我在2131上点不亮LCDWarning : C2892E: signed constant overflow: '<<'
lcmdrv.c line 233
这个警告应该使用了这样的形式:1<<x;造成的,(x可能等于31,1可能为其它数,这里只是示例);编译器将这个1当作有符号数(所以提示signed)了,可改为如下形式:
例:IO0SET=((uint32)1)<<x;
即可消除这个警告!
本人也试过类似的问题。 答 4: 我在2131上点不亮LCD
刚试过了,出来图像了,但是不停变化的,而且那个报错的语句原本是这么写的,望指导!
PINSEL0 &= ~(3 << (2 * LCM_DI)); 答 5: !我修改为 PINSEL0 &= ~(unit32)(3 << (2 * LCM_DI));
可是编译还是通不过
现在图像是有了,可是乱七八糟的,唉,晕了~ 答 6: 不会用汉字的()吧,如果是就晕菜了这行不行!!!
PINSEL0 &= ~(unit32)(3 << (2 * LCM_DI));
这行肯定行!!!
PINSEL0 &= ~(unit32)(3 << (2 * LCM_DI));
我眩晕了... 答 7: 也不是这样,没有理解我的意思 原型这样:PINSEL0 &= ~(3 << (2 * LCM_DI));
它提示signed的原因是将3当成signed类型了
应该这样:
PINSEL0 &= ~(((uint32)3) << (2 * LCM_DI)); 答 8: 谢谢!编译是通过了
但显示的还是不正常,图形比正常的大好多,而且图形显示不全,我在看LCD Drive,怕有些跟我买的LCD不一样。
没办法把现象表达出来,呵呵,我今晚打算再继续看看。 答 9: 上面两位,可以的话留个QQ吧!我开始学没多久,想有个可请教的先生哈!
然后将所给的软件编译出HEX文件后烧入FLASH
当中编译的时候出现过以下警告:
Warning : C2892E: signed constant overflow: '<<'
lcmdrv.c line 233
C:\Documents and Settings\Administrator\桌面\4.6.8-菜单功能演示\GUI_MenuIco\src\lcmdrv.c: 1 warning, 0 errors, 0 serious errors
================================================================================
Image component sizes
Code RO Data RW Data ZI Data Debug
18300 3216 2 7282 101972 Object Totals
1436 0 0 324 1204 Library Totals
================================================================================
Code RO Data RW Data ZI Data Debug
19736 3216 2 7606 103176 Grand Totals
================================================================================
Total RO Size(Code + RO Data) 22952 ( 22.41kB)
Total RW Size(RW Data + ZI Data) 7608 ( 7.43kB)
Total ROM Size(Code + RO Data + RW Data) 22954 ( 22.42kB)
================================================================================
Translation to Intel 32 bit Hex format successful.
但结果LCD只是亮着,并无任何图形的显示。
如果可以,能告知为什么吗?(我只是将UCOS-II 2.52的源代码拷到SOURSE中) 答 1: ?头有点大了是否和LCD的电压有关,应该是什么出了问题呢? 答 2: 有的要加2K左右的电阻 答 3: 回复主题:我在2131上点不亮LCDWarning : C2892E: signed constant overflow: '<<'
lcmdrv.c line 233
这个警告应该使用了这样的形式:1<<x;造成的,(x可能等于31,1可能为其它数,这里只是示例);编译器将这个1当作有符号数(所以提示signed)了,可改为如下形式:
例:IO0SET=((uint32)1)<<x;
即可消除这个警告!
本人也试过类似的问题。 答 4: 我在2131上点不亮LCD
刚试过了,出来图像了,但是不停变化的,而且那个报错的语句原本是这么写的,望指导!
PINSEL0 &= ~(3 << (2 * LCM_DI)); 答 5: !我修改为 PINSEL0 &= ~(unit32)(3 << (2 * LCM_DI));
可是编译还是通不过
现在图像是有了,可是乱七八糟的,唉,晕了~ 答 6: 不会用汉字的()吧,如果是就晕菜了这行不行!!!
PINSEL0 &= ~(unit32)(3 << (2 * LCM_DI));
这行肯定行!!!
PINSEL0 &= ~(unit32)(3 << (2 * LCM_DI));
我眩晕了... 答 7: 也不是这样,没有理解我的意思 原型这样:PINSEL0 &= ~(3 << (2 * LCM_DI));
它提示signed的原因是将3当成signed类型了
应该这样:
PINSEL0 &= ~(((uint32)3) << (2 * LCM_DI)); 答 8: 谢谢!编译是通过了
但显示的还是不正常,图形比正常的大好多,而且图形显示不全,我在看LCD Drive,怕有些跟我买的LCD不一样。
没办法把现象表达出来,呵呵,我今晚打算再继续看看。 答 9: 上面两位,可以的话留个QQ吧!我开始学没多久,想有个可请教的先生哈!
共2条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |