OpenEdv-开源电子网

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

关于TFT

[复制链接]

22

主题

55

帖子

0

精华

初级会员

Rank: 2

积分
169
金钱
169
注册时间
2013-7-9
在线时间
2 小时
发表于 2013-8-7 08:08:21 | 显示全部楼层 |阅读模式

关于那个战舰版的lcd实验,我把那gpio口的也改成了跟自己对应的开发板的gpio口,也对应了块区bank1第1区,也重新设置了下#define LCD_BASE        ((u32)(0x60000000 | 0x000007FE))
我的是9325的,可下载进去还是白屏,没用,请问还有哪里需要修改的???

 

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

使用道具 举报

头像被屏蔽

6168

主题

7036

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
19705
金钱
19705
注册时间
2012-12-27
在线时间
25 小时
发表于 2013-8-7 09:51:42 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

51

主题

1455

帖子

3

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2613
金钱
2613
注册时间
2011-1-25
在线时间
176 小时
发表于 2013-8-7 11:04:03 | 显示全部楼层
初始化代码不一样。
一直努力就很好。
回复 支持 反对

使用道具 举报

22

主题

55

帖子

0

精华

初级会员

Rank: 2

积分
169
金钱
169
注册时间
2013-7-9
在线时间
2 小时
 楼主| 发表于 2013-8-7 11:15:50 | 显示全部楼层
回复【3楼】qq942266575:
---------------------------------
它那个初始化代码可以选9325的
回复 支持 反对

使用道具 举报

51

主题

1455

帖子

3

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2613
金钱
2613
注册时间
2011-1-25
在线时间
176 小时
发表于 2013-8-7 11:25:35 | 显示全部楼层
((u32)(0x60000000 | (1<<XX)))>
一直努力就很好。
回复 支持 反对

使用道具 举报

22

主题

55

帖子

0

精华

初级会员

Rank: 2

积分
169
金钱
169
注册时间
2013-7-9
在线时间
2 小时
 楼主| 发表于 2013-8-7 12:53:34 | 显示全部楼层
回复【5楼】qq942266575:
---------------------------------
我的是FSMC_A16接LCD的RS的,那个偏移量是不是0x0001FFFE,也就是((u32)(0x60000000 | 0x0001FFFE))啊??
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-8-7 13:08:14 | 显示全部楼层
是的
回复 支持 反对

使用道具 举报

22

主题

55

帖子

0

精华

初级会员

Rank: 2

积分
169
金钱
169
注册时间
2013-7-9
在线时间
2 小时
 楼主| 发表于 2013-8-7 13:23:25 | 显示全部楼层
回复【7楼】正点原子:
---------------------------------
那我还要修改别的什么了吗??
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-8-7 14:37:40 | 显示全部楼层
回复【8楼】烧年:
---------------------------------
地址没改错,如果不能用,可能你初始化部分有问题了.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

22

主题

55

帖子

0

精华

初级会员

Rank: 2

积分
169
金钱
169
注册时间
2013-7-9
在线时间
2 小时
 楼主| 发表于 2013-8-7 15:12:53 | 显示全部楼层
初始化部分,我把gpio口改成跟自己开发板对应的gpio口进行初始化,还有我板子使用的是FSMC_Bank1_NORSRAM1,也改了,我就觉的改这两部分就可以了,但不知道初始化部分还需改别的吗??原子哥!!!
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-8-7 17:35:16 | 显示全部楼层
这是我用BANK1的初始化代码:
//初始化lcd
//该初始化函数可以初始化各种ILI93XX液晶,但是其他函数是基于ILI9320的!!!
//在其他型号的驱动芯片上没有测试! 
void LCD_Init(void)

u16 i;
RCC->AHBENR|=1<<8;        //使能FSMC时钟   
   RCC->APB2ENR|=1<<3;      //使能PORTB时钟
RCC->APB2ENR|=1<<5;      //使能PORTD时钟
RCC->APB2ENR|=1<<6;      //使能PORTE时钟
  RCC->APB2ENR|=1<<8;       //使能PORTG时钟  
GPIOB->CRL&=0XFFFFFF0F; //PB1 推挽输出 背光
GPIOB->CRL|=0X00000030;    
//PORTD复用推挽输出 
GPIOD->CRH&=0X00FFF000;
GPIOD->CRH|=0XBB000BBB; 
GPIOD->CRL&=0X0F00FF00;
GPIOD->CRL|=0XB0BB00BB;     
//PORTE复用推挽输出 
GPIOE->CRH&=0X00000000;
GPIOE->CRH|=0XBBBBBBBB; 
GPIOE->CRL&=0X000FFFFF;
GPIOE->CRL|=0XBBB00000;      

//寄存器清零
//bank1有NE1~4,每一个有一个BCR+TCR,所以总共八个寄存器。
//这里我们使用NE1 ,也就对应BTCR[0],[1]。     
FSMC_Bank1->BTCR[0]=0X00000000;
FSMC_Bank1->BTCR[1]=0X00000000;
FSMC_Bank1E->BWTR[0]=0X00000000;
//操作BCR寄存器 使用异步模式
FSMC_Bank1->BTCR[0]|=1<<12; //存储器写使能
FSMC_Bank1->BTCR[0]|=1<<14; //读写使用不同的时序
FSMC_Bank1->BTCR[0]|=1<<4;  //存储器数据宽度为16bit      
//操作BTR寄存器
//读时序控制寄存器      
FSMC_Bank1->BTCR[1]|=0<<28; //模式A        
FSMC_Bank1->BTCR[1]|=1<<0;  //地址建立时间(ADDSET)为2个HCLK 1/36M=27ns    
//因为液晶驱动IC的读数据的时候,速度不能太快,尤其对1289这个IC。
FSMC_Bank1->BTCR[1]|=0XF<<8;   //数据保存时间为16个HCLK    
//写时序控制寄存器  
FSMC_Bank1E->BWTR[0]|=0<<28;  //模式A        
FSMC_Bank1E->BWTR[0]|=0<<0; //地址建立时间(ADDSET)为1个HCLK 
  //4个HCLK(HCLK=72M)因为液晶驱动IC的写信号脉宽,最少也得50ns。72M/4=24M=55ns    
FSMC_Bank1E->BWTR[0]|=3<<8;  //数据保存时间为4个HCLK
//使能BANK1,区域4
FSMC_Bank1->BTCR[0]|=1<<0; //使能BANK1,区域1   
 
  delay_ms(50); // delay 50 ms 
  LCD_WriteReg(0x0000,0x0001);
delay_ms(50); // delay 50 ms 
   lcddev.id = LCD_ReadReg(0x0000);   

不过我的地址线用的是A21.
#define LCD_LED Bout(1) //LCD背光      B1      
//LCD地址结构体
typedef struct
{
u16 LCD_REG; 
u16 LCD_RAM;
} LCD_TypeDef;
//使用NOR/SRAM的 Bank1.sector1,地址位HADDR[27,26]=00 A21作为数据命令区分线 
//注意设置时STM32内部会右移一位对其!      
#define LCD_BASE        ((u32)(0x60000000 | 0x003FFFFE))
#define LCD             ((LCD_TypeDef *) LCD_BASE)
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

8

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
70
金钱
70
注册时间
2013-7-27
在线时间
0 小时
发表于 2013-8-7 19:43:19 | 显示全部楼层
回复【11楼】正点原子:
---------------------------------
我自己也开了一块板子,按照引脚修改了一下,还有就是改了下面这个LCD_BASE的值就好了
//使用NOR/SRAM的 Bank1.sector1,地址位HADDR[27,26]=00 A21作为数据命令区分线  
//注意设置时STM32内部会右移一位对其!        
#define LCD_BASE        ((u32)(0x60000000 | 0x003FFFFE)) 
#define LCD             ((LCD_TypeDef *) LCD_BASE)

就是不太清楚这个LCD_BASE是怎么算出来的??
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-8-7 21:29:20 | 显示全部楼层
回复【12楼】snailliu123:
---------------------------------
论坛多找找,这个很多帖子有过讨论了.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-15 10:35

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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