OpenEdv-开源电子网

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

fsmc RS一直为低

[复制链接]

23

主题

292

帖子

0

精华

高级会员

Rank: 4

积分
501
金钱
501
注册时间
2013-9-17
在线时间
17 小时
发表于 2013-11-28 15:39:21 | 显示全部楼层 |阅读模式
主程序 使用 while --- LCD_Clear(0xffff);  delay_ms(100); LCD_Clear(0x0000);delay_ms(200);

1: 利用原子哥的例程 配置下发现RS一直为低 所以导致屏幕一直白屏 数据写不进去 用示波器看 每个DB口的数据状态都是对的 
       此时 可以正确读出 液晶ID
2: 把原子哥的基址结构体修改 直接使用 0x60020000  对应的读写寄存器、读写GRAM函数都相应改动
       此时 RS线为高  但是不能读出ID DB口的状态与 1 下的情况一样 

热心网友 帮着分析下


附上 修改后的代码:
       注释部分为 原子哥 原有的代码 以作参考--------- 如下




闷鱼闷闷不乐吃焖鱼
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-11-28 15:48:12 | 显示全部楼层
回复【楼主位】闷鱼:
---------------------------------
while(1)
{
LCD->LCD_RAM=1;
LCD->LCD_REG=1;
}
这样,你才好观测RS,否则你用LCD_Clear之类的语句,RS脉冲出现的概率,就和大海捞针一样...
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

23

主题

292

帖子

0

精华

高级会员

Rank: 4

积分
501
金钱
501
注册时间
2013-9-17
在线时间
17 小时
 楼主| 发表于 2013-11-29 17:43:37 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
LCD->LCD_RAM  ------0x60001FFE          
LCD_RAM    ----------- 0x60020000  两种写法 
回头继续调试   
    改完之后的程序 采用 0x60020000的写法 目前已经完成 无 debug
    在此基础之上 换成 0x60001FFE 的写法 目前 还有部分 bug 

    因为0x60020000写法无问题  姑且从刷屏函数来入手 测试0x60001FFE
    把LCD_RAM = color 替换为 LCD->LCD_RAM = color  (其余的读写寄存器和GRAM 都是没有采用结构体写法
                                                                                 保持 0x60020000的写法)
   
    现象是 执行LCD->LCD_RAM = color;(刷屏函数 LCD_Clear中for循环里面的一句) 时,debug 时 
    发现 LCD_RAM = 0x9325.。!!!()
    而此  时 color的值 不能写入 GRAM  。。  
    所以 应该是某个地方 RAM被强制赋值了   暂时还没有找到
闷鱼闷闷不乐吃焖鱼
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-8 12:46

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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