打印
[应用相关]

stm32的fsmc控制NT35310液晶显示屏

[复制链接]
1712|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
看着不错,转来了。
学了两周的ARM9,感觉还是很难入门,再加上这个暑假找到了一个stm32的实习岗位,不得又回到了stm32的学习上,其中学习ARM9之前的STM32 FSMC部分学的很蛋疼,但学了ARM9之后搞清了SRAM SDRAM NOR NAND之间的区别,很多问题就迎刃而解了。



控制LCD由以下几部分:
1.打开FSMC时钟
RCC->AHBENR|=1<<8;
2.初始化FSMC用到的IO口
RCC->APB2ENR|=3<<5;
GPIOD->CRL&=0xff00ff00;
GPIOD->CRL|=0x00bb00bb; //RD=PD4 WR=PD5
GPIOD->CRH&=0x00fff000;
GPIOD->CRH|=0xbb000bbb;
GPIOD->ODR|=3<<0;
GPIOD->ODR|=7<<8;
GPIOD->ODR|=3<<14;

GPIOE->CRL&=0x0fffffff;
GPIOE->CRL|=0xb0000000;
GPIOE->CRH&=0x00000000;
GPIOE->CRH|=0xbbbbbbbb;
GPIOE->ODR|=1<<7;
GPIOE->ODR|=0xff<<8;

RCC->APB2ENR|=1<<8;
GPIOG->CRL&=0xfffffff0;
GPIOG->CRL|=0x0000000b;//RS=PG0

GPIOG->CRH&=0xfff0ffff;
GPIOG->CRH|=0x000b0000;//CS=PG12


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

4.调用NT35310的初始化函数(代码量太大就不粘贴了)



然后就是根据数据手册进行LCD的操作了,因为LCD是16位的所以内部的第11位连接外面的PA10,所以
#define lcd_wr_r 0x6c000000  //写命令 第11位为0
#define lcd_wr_d 0x6c000800 //写数据 第11位为1


void LCD_WR_REG(u16 command)
{
*(u16*)(lcd_wr_r)=command;
}
void LCD_WR_DATA(u16 data)
{
*(u16*)(lcd_wr_d)=data;
}

void lcd_wr_cmd(u16 command,u16 data)
{
*(u16*)(lcd_wr_r)=command;
*(u16*)(lcd_wr_d)=data;
}


沙发
huangcunxiake| | 2017-1-13 23:52 | 只看该作者
没想到如果用对了方法还是非常容易控制的。

使用特权

评论回复
板凳
wahahaheihei|  楼主 | 2017-1-23 19:55 | 只看该作者
其实用专用的外设做很容易,复杂的就是配置阶段。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

217

主题

3042

帖子

12

粉丝