OpenEdv-开源电子网

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

FSMC驱动lcd 有问题,求助

[复制链接]

2

主题

3

帖子

0

精华

新手入门

积分
31
金钱
31
注册时间
2013-6-24
在线时间
0 小时
发表于 2013-6-26 14:32:28 | 显示全部楼层 |阅读模式

 

FSMC驱动lcd,lcd_cs接NCE2, lcd_rs接FSMC_A16, 其他按总线接法,可一直调不通,恳请高手赐教。
附相关代码:
 
/* 使用总线方式时定义地址 */
/* 挂在不同的BANK,使用不同地址线时请自行换算地址 */
// NCE2, A16=RS, 注意左移一位
#define LCD_REG              (*((volatile unsigned short *) 0x64000000)) /* RS = 0 */
#define LCD_RAM              (*((volatile unsigned short *) 0x64020000)) /* RS = 1 */


void ili9320_WriteData(u16 data)
{
 LCD_RAM = data;
}

__inline void ili9320_WriteIndex(u16 idx)
{
  LCD_REG = idx;
 }
//初始化
void Lcd_Configuration(void)
{            
 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->CRH&=0XFFFFFF0F;//PB9 推挽输出 背光
 GPIOB->CRH|=0X00000030;

 GPIOD->CRH&=0XFFF0FFFF;//PD12 推挽输出 RESET
 GPIOD->CRH|=0X00030000;
    
 //PORTD复用推挽输出 0 1 4 5 7 8 9 10 14 15
 // PD7 NE1/NCE2   
 GPIOD->CRH&=0X00FFF000;
 GPIOD->CRH|=0XBB000BBB;
 GPIOD->CRL&=0X0F00FF00;
 GPIOD->CRL|=0XB0BB00BB;    
 //PORTE复用推挽输出7~15,  
 GPIOE->CRH&=0X00000000;
 GPIOE->CRH|=0XBBBBBBBB;
 GPIOE->CRL&=0X0FFFFFFF;
 GPIOE->CRL|=0XB0000000;
 // PD11  A16   
 GPIOD->CRH&=0XFFFF0FFF;
 GPIOD->CRH|=0X0000B000;

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

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

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-6-26 17:47:20 | 显示全部楼层
看着没问题哦.
有没有示波器,可以看看WR,RD,RS等信号.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-18 10:11

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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