OpenEdv-开源电子网

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

战舰板,SPB横屏模式下显示异常,但APP横屏横屏操作正常,请求指点。

[复制链接]

6

主题

31

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
239
金钱
239
注册时间
2013-12-30
在线时间
60 小时
发表于 2015-8-8 21:41:34 | 显示全部楼层 |阅读模式
5金钱
一,器件
        原子的战舰板,3.2寸LCD, 芯片为9341
二。实现功能
       综合实例作横屏显示
三。异常现象
    3.1 开机上电检测时,字符串横屏显示正常
    3.2 SPB桌面系统显示异常,但点击屏幕后,图标能显示正常。
    


SPB导入时,异常


点击原图标位置,图标可以在横屏模式下正常显示


双击原图标位置,能正常进入APP,显示也正常

用仿真器跟踪以下函数
/*******************************************************************************
函数功能 :  设置选中哪个图标
输入参数 :  sel:0~8代表当前页的选中ico
输出参数 :
操作说明 :  选中的图标会反亮
*******************************************************************************/
void spb_set_sel(u8 sel)
{
spbdev.selico=sel;
SLCD.show(SLCD.pos);//刷新背景
delay_ms(30);     
gui_alphablend_area(spbdev.icos[SLCD.frame][sel].x,spbdev.icos[SLCD.frame][sel].y,spbdev.icos[SLCD.frame][sel].width,spbdev.icos[SLCD.frame][sel].height,SPB_ALPHA_COLOR,SPB_ALPHA_VAL);
minibmp_decode(spbdev.icos[SLCD.frame][sel].path,spbdev.icos[SLCD.frame][sel].x+5,spbdev.icos[SLCD.frame][sel].y,spbdev.icos[SLCD.frame][sel].width,spbdev.icos[SLCD.frame][sel].height,0,0);
  gui_show_strmid(spbdev.icos[SLCD.frame][sel].x,spbdev.icos[SLCD.frame][sel].y+67,spbdev.icos[SLCD.frame][sel].width,16,SPB_FONT_COLOR,16,spbdev.icos[SLCD.frame][sel].name);//显示名字
}

SLCD.show(SLCD.pos);//刷新背景         此刷新背景,依然是类似二维码的图像
minibmp_decode(spbdev.icos[SLCD.frame][sel].path,spbdev.icos[SLCD.frame][sel].x+5,spbdev.icos[SLCD.frame][sel].y,spbdev.icos[SLCD.frame][sel].width,spbdev.icos[SLCD.frame][sel].height,0,0); //  图标显示正常
gui_show_strmid(spbdev.icos[SLCD.frame][sel].x,spbdev.icos[SLCD.frame][sel].y+67,spbdev.icos[SLCD.frame][sel].width,16,SPB_FONT_COLOR,16,spbdev.icos[SLCD.frame][sel].name);//显示名字正常

整个LCD驱动,就只是修改了93XX的初始化部分,将竖屏更改为横屏显示 。
// LCD_Display_Dir(0); //默认为竖屏
LCD_Display_Dir(1); //横屏
LCD_LED=1; //点亮背光

专家,战友,同学位,请指点一下,实在是折腾了很久,才发问的,现在的病灶就在SPB的显示部分。。。。。。。感谢!

最佳答案

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

改横屏,没那么简单。 sbp.c里面,大把地方要改。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-8-8 21:41:35 | 显示全部楼层
改横屏,没那么简单。
sbp.c里面,大把地方要改。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

6

主题

31

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
239
金钱
239
注册时间
2013-12-30
在线时间
60 小时
 楼主| 发表于 2015-8-8 21:59:34 | 显示全部楼层
/*******************************************************************************
函数功能:  初始化spb各个参数
输入参数:  
输出参数:
操作说明: 
*******************************************************************************/
void spb_init(void)
{
u16 i,j;
spbdev.oldxpos=0;
spbdev.curxpos=0;
spbdev.curypos=0;
spbdev.spbsta=0;
spbdev.selico=0xff;

// if(lcddev.dir==0){                                              //竖屏
for(i=0;i<3;i++)                                              //为每个图标设置参数,包含坐标,尺寸,路径,名字等                                                                                                
{
for(j=0;j<3;j++)
{
spbdev.icos[0][i*3+j].x=5+j*80;
spbdev.icos[0][i*3+j].y=10+i*105;
spbdev.icos[0][i*3+j].width=70;
spbdev.icos[0][i*3+j].height=90;
spbdev.icos[0][i*3+j].path=(u8*)spb_icos_path_tbl[0][i*3+j];
spbdev.icos[0][i*3+j].name=(u8*)icos_name_tbl[gui_phy.language][0][i*3+j];

spbdev.icos[1][i*3+j].x=5+j*80;
spbdev.icos[1][i*3+j].y=10+i*105;
spbdev.icos[1][i*3+j].width=70;
spbdev.icos[1][i*3+j].height=90;
spbdev.icos[1][i*3+j].path=(u8*)spb_icos_path_tbl[1][i*3+j]; 
spbdev.icos[1][i*3+j].name=(u8*)icos_name_tbl[gui_phy.language][1][i*3+j];
}
}
//   }
//  else{                                                           //横屏
//     for(i=0;i<3;i++)                                              //为每个图标设置参数,包含坐标,尺寸,路径,名字等                                                                                                
// {
// for(j=0;j<3;j++)
// {
// spbdev.icos[0][i*3+j].x=10+i*105;                            //X坐标                                        
// spbdev.icos[0][i*3+j].y=5+j*80;                          //Y坐标
// spbdev.icos[0][i*3+j].width=90;                            //X尺寸
// spbdev.icos[0][i*3+j].height=70;                           //Y惊起
// spbdev.icos[0][i*3+j].path=(u8*)spb_icos_path_tbl[0][i*3+j];//图标路径
// spbdev.icos[0][i*3+j].name=(u8*)icos_name_tbl[gui_phy.language][0][i*3+j];//名称
//
// spbdev.icos[1][i*3+j].x=10+i*105;
// spbdev.icos[1][i*3+j].y=5+j*80;
// spbdev.icos[1][i*3+j].width=90;
// spbdev.icos[1][i*3+j].height=70;
// spbdev.icos[1][i*3+j].path=(u8*)spb_icos_path_tbl[1][i*3+j]; 
// spbdev.icos[1][i*3+j].name=(u8*)icos_name_tbl[gui_phy.language][1][i*3+j];
// }
// }
// }
  //配置sram->lcd的dma设置
LCD_DMA_Coinfig();
//指向sramlcd
gui_phy.read_point=slcd_read_point;
gui_phy.draw_point=slcd_draw_point;  
pic_phy.read_point=slcd_read_point;
pic_phy.draw_point=slcd_draw_point;  


  if(lcddev.dir==0){                                       //竖屏 
SLCD.frame=0;  
ai_load_picfile(spb_bkpic_path_tbl[0],0,0,240,320,0);//画第一张图片
spb_load_icos(SLCD.frame);
SLCD.frame=1; //帧计数器增加
ai_load_picfile(spb_bkpic_path_tbl[1],0,0,240,320,0);//画第二张图片
spb_load_icos(SLCD.frame);
}
else{                                                     //横屏
SLCD.frame=0;  
ai_load_picfile(spb_bkpic_path_tbl[0],0,0,320,240,0);//画第一张图片
spb_load_icos(SLCD.frame);
SLCD.frame=1; //帧计数器增加
ai_load_picfile(spb_bkpic_path_tbl[1],0,0,320,240,0);//画第二张图片
spb_load_icos(SLCD.frame);
}


//指向lcd
gui_phy.read_point=LCD_ReadPoint;
gui_phy.draw_point=LCD_Fast_DrawPoint;
gui_phy.lcdwidth=lcddev.width;
gui_phy.lcdheight=lcddev.height; 
pic_phy.read_point=LCD_ReadPoint;
pic_phy.draw_point=LCD_Fast_DrawPoint;
SLCD.pos=0;   //设置当前显示的位置  
SLCD.frame=0;
SLCD.show(SLCD.pos);//显示主界面
}


SPB的初始化部分
回复

使用道具 举报

6

主题

31

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
239
金钱
239
注册时间
2013-12-30
在线时间
60 小时
 楼主| 发表于 2015-8-9 18:21:08 | 显示全部楼层
顶起来,等待帮助
回复

使用道具 举报

6

主题

31

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
239
金钱
239
注册时间
2013-12-30
在线时间
60 小时
 楼主| 发表于 2015-8-10 10:14:18 | 显示全部楼层
哥,能再多指导一些吗,触摸不理会,打算是薄膜按键做为输入。电阻屏不好用。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-18 15:03

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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