OpenEdv-开源电子网

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

fsmc驱动lcd程序中为什么多次设置数据保存时间

[复制链接]

61

主题

160

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
270
金钱
270
注册时间
2012-1-12
在线时间
93 小时
发表于 2012-7-25 16:05:01 | 显示全部楼层 |阅读模式
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        我不太明白为什么设置那么多次?请原子哥指教
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2012-7-25 19:31:36 | 显示全部楼层
因为LCD读ID的时候,需要速度慢一些,否则读不出来.
所以先设置低一点.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

12

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
92
金钱
92
注册时间
2012-11-1
在线时间
0 小时
发表于 2012-11-15 20:56:44 | 显示全部楼层
回复【楼主位】47933673:
---------------------------------
你这个程序是在光盘的哪个文件夹找到的啊?我的貌似没看到这个程序
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

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

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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