OpenEdv-开源电子网

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

特来请教刘军老师,关于JPEG解码实例例程

[复制链接]

6

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2011-7-17
在线时间
3 小时
发表于 2011-7-18 18:42:18 | 显示全部楼层 |阅读模式
void TFT_WR_CMD(u8 dbw,u8 index,u16 val)
{
 TFT_WR_REG(index); 
 if(dbw)
 {
  TFT_WR_DATA(val>>8);
 }
 TFT_WR_DATA(val&0xff);
}   
这里有一个参数,DBW,值为0或者1,判断数据是右移8位或者左边补8个11111111吧\

然后,后面有这样的写寄存器操作
TFT_WR_CMD(0,0x72,0xA3);
 TFT_WR_CMD(0,0x73,0x04);
 TFT_WR_CMD(0,0x75,0x45);
 TFT_WR_CMD(0,0x76,0x23);
 TFT_WR_CMD(0,0x77,0x08);
 TFT_WR_CMD(0,0x78,0x08);
 TFT_WR_CMD(0,0x79,0x00);
 TFT_WR_CMD(0,0x7F,0xF0); 
 TFT_WR_CMD(0,0x71,0x81);  
 delay_ms(2);
 TFT_WR_CMD(0,0x0D,0x23);
 TFT_WR_CMD(0,0x11,0x00);
 TFT_WR_CMD(0,0x12,0x00);
 TFT_WR_CMD(0,0x21,0x37);
 TFT_WR_CMD(0,0x22,0x02);
 TFT_WR_CMD(0,0x23,0x24); 
 TFT_WR_CMD(0,0x24,0x13);
 TFT_WR_CMD(0,0x25,0x0A);
 TFT_WR_CMD(0,0x26,0x82);
 TFT_WR_CMD(0,0x27,0x01);
 TFT_WR_CMD(0,0x1E,0x25);
 TFT_WR_CMD(0,0x1F,0x59);//有影响 
 //GAMMA设置
 TFT_WR_CMD(1,0x30,0x0777);
 TFT_WR_CMD(1,0x31,0x0444);
 TFT_WR_CMD(1,0x32,0x0555);

我不解的是,哪些该是1,哪些该是0


比如下面的不完全手册里面的初始化代码
LCD_WriteReg(0x00e7,0x0010);     
  LCD_WriteReg(0x0000,0x0001);//开启内部时钟
  LCD_WriteReg(0x0001,0x0100);    
  LCD_WriteReg(0x0002,0x0700);//电源开启                   
  //LCD_WriteReg(0x0003,(1<<3)|(1<<4) );  //65K  RGB
  //DRIVE TABLE(寄存器 03H)
  //BIT3=AM BIT4:5=ID0:1
  //AM ID0 ID1   FUNCATION
  // 0  0   0    R->L D->U
  // 1  0   0    D->U R->L
  // 0  1   0    L->R D->U
  // 1  1   0    D->U L->R
  // 0  0   1    R->L U->D
  // 1  0   1    U->D R->L
  // 0  1   1    L->R U->D 正常就用这个.
  // 1  1   1    U->D L->R
  LCD_WriteReg(0x0003,(1<<12)|(3<<4)|(0<<3) );//65K   
  LCD_WriteReg(0x0004,0x0000);                                  
  LCD_WriteReg(0x0008,0x0207);           
  LCD_WriteReg(0x0009,0x0000);        
  LCD_WriteReg(0x000a,0x0000);//display setting        
  LCD_WriteReg(0x000c,0x0001);//display setting         
  LCD_WriteReg(0x000d,0x0000);//0f3c         
  LCD_WriteReg(0x000f,0x0000);
  //电源配置
  LCD_WriteReg(0x0010,0x0000);  
  LCD_WriteReg(0x0011,0x0007);
  LCD_WriteReg(0x0012,0x0000);                                                                
  LCD_WriteReg(0x0013,0x0000);                
  LCD_Delay(5);
  LCD_WriteReg(0x0010,0x1590);  
  LCD_WriteReg(0x0011,0x0227);
  LCD_Delay(5);
  LCD_WriteReg(0x0012,0x009c);                 
  LCD_Delay(5);
  LCD_WriteReg(0x0013,0x1900);  
  LCD_WriteReg(0x0029,0x0023);
  LCD_WriteReg(0x002b,0x000e);
  LCD_Delay(5);
  LCD_WriteReg(0x0020,0x0000);                                                           
  LCD_WriteReg(0x0021,0x013f);          
  LCD_Delay(5);
  //伽马校正
  LCD_WriteReg(0x0030,0x0007);
  LCD_WriteReg(0x0031,0x0707);  
  LCD_WriteReg(0x0032,0x0006);
  LCD_WriteReg(0x0035,0x0704);
  LCD_WriteReg(0x0036,0x1f04);
  LCD_WriteReg(0x0037,0x0004);
  LCD_WriteReg(0x0038,0x0000);       
  LCD_WriteReg(0x0039,0x0706);    
  LCD_WriteReg(0x003c,0x0701);
  LCD_WriteReg(0x003d,0x000f);
  LCD_Delay(5);
  LCD_WriteReg(0x0050,0x0000); //水平GRAM起始位置
  LCD_WriteReg(0x0051,0x00ef); //水平GRAM终止位置                   
  LCD_WriteReg(0x0052,0x0000); //垂直GRAM起始位置                   
  LCD_WriteReg(0x0053,0x013f); //垂直GRAM终止位置 
  
  LCD_WriteReg(0x0060,0xa700);       
  LCD_WriteReg(0x0061,0x0001);
  LCD_WriteReg(0x006a,0x0000);
  LCD_WriteReg(0x0080,0x0000);
  LCD_WriteReg(0x0081,0x0000);
  LCD_WriteReg(0x0082,0x0000);
  LCD_WriteReg(0x0083,0x0000);
  LCD_WriteReg(0x0084,0x0000);
  LCD_WriteReg(0x0085,0x0000);
  
  LCD_WriteReg(0x0090,0x0010);    
  LCD_WriteReg(0x0092,0x0000); 
  LCD_WriteReg(0x0093,0x0003);
  LCD_WriteReg(0x0095,0x0110);
  LCD_WriteReg(0x0097,0x0000);       
  LCD_WriteReg(0x0098,0x0000); 
  //开启显示设置   
  LCD_WriteReg(0x0007,0x0133);  
  LCD_WriteReg(0x0020,0x0000);                                                           
  LCD_WriteReg(0x0021,0x013f);


要怎样才能改为8位操作模式
硬件上,我调了电阻,拉高im0了,应该进入8位模式了,
8位模式用的是D8-D15
那么D0-D7是空着还是接地??

最后一个问题
工程打开有问题,要怎样改一下,我模拟建立相关目录,还是出错
Snap1.jpg

JPEG解码实验.rar

755.78 KB, 下载次数: 4846

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

使用道具 举报

6

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2011-7-17
在线时间
3 小时
 楼主| 发表于 2011-7-18 18:44:38 | 显示全部楼层
snap1.jpg是出错提示,jpeg解码实验是工程文件
谢谢
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2011-7-19 08:48:12 | 显示全部楼层
DBW用于判断写高八位还是第八位.
你不理解哪些是0,哪些是1,可以去看看你的液晶驱动IC的资料.看看8位模式下,是怎么传输的.
我的代码不一定适合你的液晶.所以你在我的基础上改,不一定能用.因为你的硬件和我的硬件未必相同.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

6

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2011-7-17
在线时间
3 小时
 楼主| 发表于 2011-7-22 09:50:11 | 显示全部楼层
刘军老师这个代码的屏驱动ic是什么型号的?
另外,9325的初始化代码
//************* Start Initial Sequence **********//
// LCD_WR_REG(0x00E5); LCD_WR_DATA(0x78F0); // set SRAM internal timing
LCD_WR_REG(0x0001); LCD_WR_DATA(0x0100); // set SS and SM bit
LCD_WR_REG(0x0002); LCD_WR_DATA(0x0700); // set 1 line inversion
LCD_WR_REG(0x0003); LCD_WR_DATA(0x1030); // set GRAM write direction and BGR=1.
LCD_WR_REG(0x0004); LCD_WR_DATA(0x0000); // Resize register
LCD_WR_REG(0x0008); LCD_WR_DATA(0x0207); // set the back porch and front porch
LCD_WR_REG(0x0009); LCD_WR_DATA(0x0000); // set non-display area refresh cycle ISC[3:0]
LCD_WR_REG(0x000A); LCD_WR_DATA(0x0000); // FMARK function
LCD_WR_REG(0x000C); LCD_WR_DATA(0x0000); // RGB interface setting
LCD_WR_REG(0x000D); LCD_WR_DATA(0x0000); // Frame marker osition
LCD_WR_REG(0x000F); LCD_WR_DATA(0x0000); // RGB interface polarity
//*************Power On sequence ****************//
LCD_WR_REG(0x0010); LCD_WR_DATA(0x0000); // SAP, BT[3:0], AP, DSTB, SLP, STB
LCD_WR_REG(0x0011); LCD_WR_DATA(0x0007); // DC1[2:0], DC0[2:0], VC[2:0]
LCD_WR_REG(0x0012); LCD_WR_DATA(0x0000); // VREG1OUT voltage
LCD_WR_REG(0x0013); LCD_WR_DATA(0x0000); // VDV[4:0] for VCOM amplitude
LCD_WR_REG(0x0007); LCD_WR_DATA(0x0001);
Delay(5); // Dis-charge capacitor power voltage
LCD_WR_REG(0x0010); LCD_WR_DATA(0x1090); // 1490//SAP, BT[3:0], AP, DSTB, SLP, STB
LCD_WR_REG(0x0011); LCD_WR_DATA(0x0227); // DC1[2:0], DC0[2:0], VC[2:0]
像这样的,改成八位,要怎样改,可以教我一两条不

我看9325手册都看完了,没有实例,还是不明白
16位模式操作9325我基本上明白了
回复 支持 反对

使用道具 举报

6

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2011-7-17
在线时间
3 小时
 楼主| 发表于 2011-7-22 09:51:03 | 显示全部楼层
8位模式下,低8位是接地啊
那向低8位写数据应该无效吧
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2011-7-22 10:24:33 | 显示全部楼层
能不能改为8位的屏,你得问卖屏的那个人.
9325是支持8位模式,但是做液晶的人未必引出引脚让你来控制.这点你要明确.

我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

1

主题

22

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2013-3-27
在线时间
0 小时
发表于 2013-3-27 15:25:12 | 显示全部楼层
好想能解码jpeg!
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-22 12:44

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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