中级会员
 
- 积分
- 270
- 金钱
- 270
- 注册时间
- 2012-1-12
- 在线时间
- 93 小时
|
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<<4; //存储器数据宽度为16bit
//操作BTR寄存器
//3个HCLK(HCLK=72M)因为液晶驱动IC的写信号脉宽,最少也得50ns。72M/3=24M=42ns,已经超频了。
FSMC_Bank1->BTCR[7]|=1<<9; //数据保存时间为3个HCLK
//闪存写时序寄存器
FSMC_Bank1E->BWTR[6]=0x0FFFFFFF;//默认值
//使能BANK4(PC卡设备)
FSMC_Bank1->BTCR[6]|=1<<0;
delay_ms(50); // delay 50 ms
LCD_WriteReg(0x0000,0x0001);
delay_ms(50); // delay 50 ms
//因为液晶驱动IC的读数据的时候,速度不能太快,尤其对1289这个IC。
FSMC_Bank1->BTCR[7]|=0XF<<8; //数据保存时间为16个HCLK
DeviceCode = LCD_ReadReg(0x0000);
FSMC_Bank1->BTCR[7]&=~(0XF<<8); //数据保存时间为0
//因为液晶驱动IC的写信号脉宽,最少也得50ns。72M/3=24M=42ns,已经超频了。
FSMC_Bank1->BTCR[7]|=1<<9; //数据保存时间为3个HCLK
printf(" LCD ID:%x\n",DeviceCode); //打印LCD ID
原子哥 上面是你写的fsmc驱动lcd程序,这段程序中数据保存时间设置了好几次,刚开始数据保存时间设置为3个HCLK
后来又依次设置为16个HCLK、0个HCLK 、 3个HCLK 我不太明白为什么设置那么多次?请原子哥指教 |
|