OpenEdv-开源电子网

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

FSMC控制LCD

[复制链接]

11

主题

62

帖子

0

精华

初级会员

Rank: 2

积分
126
金钱
126
注册时间
2013-4-22
在线时间
0 小时
发表于 2013-8-3 12:15:21 | 显示全部楼层 |阅读模式
             手头有一块2.8寸LCD,CS端接PD7(NE1),RS接PD11(A16),WR端接PD5(NWE),RD端接PD4(NOR),背光直接接了电源,REST端接PE1.

我根据以上的电路将原子哥的TFTLCD显示实验的程序的对应配置给改动了一下,复位程序写在led.c中。现在的情况是程序下进去之后,LCD白屏,串口助手直接输出,显示 LCD ID:0(实际为9325),LED正常闪烁。 以下是对应的修改代码;



 

山登绝顶我为峰!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-8-3 12:20:40 | 显示全部楼层
回复【楼主位】田晓生:
---------------------------------
你这里没设置错啊.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

11

主题

62

帖子

0

精华

初级会员

Rank: 2

积分
126
金钱
126
注册时间
2013-4-22
在线时间
0 小时
 楼主| 发表于 2013-8-3 12:26:09 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
其它处改动刚贴上去。
山登绝顶我为峰!
回复 支持 反对

使用道具 举报

22

主题

55

帖子

0

精华

初级会员

Rank: 2

积分
169
金钱
169
注册时间
2013-7-9
在线时间
2 小时
发表于 2013-8-7 17:53:51 | 显示全部楼层
回复【3楼】田晓生:
---------------------------------
你好!我看了你改的部分,我想我们用的开发板是一样的,我正做这个实验,改的部分和你是一样的,就是你的串口是直接输出的,我的只是没有注释掉你“跳过”的那一部分,但下载后,我的串口打印的ID号是4532(同样是9325的),LCD白屏,LED正常闪烁。所以现在搞得很纠结,都不知道该怎么弄了。不知道现在你的这个实验搞定了没有啊,到底是哪里出了问题,所以很想请教你一下!!
回复 支持 反对

使用道具 举报

46

主题

1579

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1970
金钱
1970
注册时间
2011-7-17
在线时间
4 小时
发表于 2013-8-7 17:59:09 | 显示全部楼层
你A16的地址有问题,应该是0x68000000|0b11111111111111111
也就是0x68000000|0x0001ffff因为只有这样,才能通过指针来控制A16的电平啊
Time?And?Relative?Dimension?In?Space.
回复 支持 反对

使用道具 举报

11

主题

62

帖子

0

精华

初级会员

Rank: 2

积分
126
金钱
126
注册时间
2013-4-22
在线时间
0 小时
 楼主| 发表于 2013-8-7 18:07:13 | 显示全部楼层
你的板子也是硕耀的那款?
山登绝顶我为峰!
回复 支持 反对

使用道具 举报

11

主题

62

帖子

0

精华

初级会员

Rank: 2

积分
126
金钱
126
注册时间
2013-4-22
在线时间
0 小时
 楼主| 发表于 2013-8-7 18:09:36 | 显示全部楼层
回复【4楼】烧年:
---------------------------------
你的板子也是硕耀的那款?
山登绝顶我为峰!
回复 支持 反对

使用道具 举报

11

主题

62

帖子

0

精华

初级会员

Rank: 2

积分
126
金钱
126
注册时间
2013-4-22
在线时间
0 小时
 楼主| 发表于 2013-8-7 18:22:06 | 显示全部楼层
回复【5楼】Tardis:
---------------------------------
Bank1.sector1不是从0x60000000开始的吗?
因为定义的数据是16位的,所以如果LCD.RED的地址是0x6001fffe,此时A16为低。CD.RAM的地址就刚好是0x60020000,这时A16就由之前的低变成高。这个思路有错误吗?
山登绝顶我为峰!
回复 支持 反对

使用道具 举报

22

主题

55

帖子

0

精华

初级会员

Rank: 2

积分
169
金钱
169
注册时间
2013-7-9
在线时间
2 小时
发表于 2013-8-7 18:29:33 | 显示全部楼层
回复【7楼】田晓生:
---------------------------------
我的没有中文名的,“HY—heyaodz120820”,我也不知道叫啥,但看你改的部分真的是一样的,可能是这部分的接口是一样的吧
回复 支持 反对

使用道具 举报

22

主题

55

帖子

0

精华

初级会员

Rank: 2

积分
169
金钱
169
注册时间
2013-7-9
在线时间
2 小时
发表于 2013-8-7 18:30:28 | 显示全部楼层
回复【8楼】田晓生:
---------------------------------
我也是这么理解的,那你搞定了没有啊,求指教!!
回复 支持 反对

使用道具 举报

57

主题

195

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
446
金钱
446
注册时间
2013-2-20
在线时间
1 小时
发表于 2013-8-7 18:44:56 | 显示全部楼层
你奋斗版的吧…
创新超越梦想,拼搏创造奇迹....
回复 支持 反对

使用道具 举报

22

主题

55

帖子

0

精华

初级会员

Rank: 2

积分
169
金钱
169
注册时间
2013-7-9
在线时间
2 小时
发表于 2013-8-7 18:45:22 | 显示全部楼层
回复【7楼】田晓生:
---------------------------------
原来是硕耀的,你不说我还不知道
回复 支持 反对

使用道具 举报

11

主题

62

帖子

0

精华

初级会员

Rank: 2

积分
126
金钱
126
注册时间
2013-4-22
在线时间
0 小时
 楼主| 发表于 2013-8-7 19:27:10 | 显示全部楼层
回复【11楼】废墟崛起之厦:
---------------------------------
http://item.taobao.com/item.htm?spm=a1z10.1.w1011-769202093.2.CfllXy&id=10341107189
就在这买的,不知道是不是奋斗版。
你也是用这套板子吗?
山登绝顶我为峰!
回复 支持 反对

使用道具 举报

11

主题

62

帖子

0

精华

初级会员

Rank: 2

积分
126
金钱
126
注册时间
2013-4-22
在线时间
0 小时
 楼主| 发表于 2013-8-7 19:32:41 | 显示全部楼层
回复【9楼】烧年:
---------------------------------
没有,我把那个程序的FSMC设置部分改的和板子自带的程序一摸一样,可还是读不出ID号,偶尔曾经读出过ID为9328。我也很郁闷啊,这个搞了很久了,资料看了多少遍,就是神奇地不出结果。
山登绝顶我为峰!
回复 支持 反对

使用道具 举报

22

主题

55

帖子

0

精华

初级会员

Rank: 2

积分
169
金钱
169
注册时间
2013-7-9
在线时间
2 小时
发表于 2013-8-7 19:42:27 | 显示全部楼层
回复【14楼】田晓生:
---------------------------------
我也是那买的了,对啊,花都看出来了就是搞不定
回复 支持 反对

使用道具 举报

22

主题

55

帖子

0

精华

初级会员

Rank: 2

积分
169
金钱
169
注册时间
2013-7-9
在线时间
2 小时
发表于 2013-8-7 19:49:43 | 显示全部楼层
回复【14楼】田晓生:
---------------------------------
你现在学到哪部分了,你应该学的比我快,可以加下你QQ吗,以后有什么问题可以相互探讨一下,我的qq:1016348384!!!
回复 支持 反对

使用道具 举报

57

主题

195

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
446
金钱
446
注册时间
2013-2-20
在线时间
1 小时
发表于 2013-8-9 09:49:13 | 显示全部楼层
这是奋斗版的历程,我看了下..估计仿制的...哈哈
创新超越梦想,拼搏创造奇迹....
回复 支持 反对

使用道具 举报

46

主题

1579

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1970
金钱
1970
注册时间
2011-7-17
在线时间
4 小时
发表于 2013-8-10 11:41:42 | 显示全部楼层
回复【8楼】田晓生:
---------------------------------
思路没有错误,bank1是从0X60000000开始
我的理解是这样的,如果用结构体
struct
{
 u16 cmd,
u16 dat,
}lcd;
来定义的话,要想lcd.cmd操作后,然后用lcd.dat操作的时候A16自动变化的话,那么就要保证cmd的时候A16是0,dat时候A16是1,这样,根据地址的变化,那么应该初始化A16前面的引脚全部为1,也就是A0-A15都为1,然后地址递增的话,就自动进1,变成A16为1,A0-A15为0了。
示意图如下:
CMD赋值的时候FSMC_A引脚的状态:
16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00
00 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
DAT赋值时候FSMC_A引脚的状态:
16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00
01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
根据示意图,所以我觉得地址应该设置为0x6001ffff,这样,只要地址往1偏移,就成0x60020000,这样A16自动变化了。
另外,你设置的数据位数为16位的,也就是说,FSMC地址没增加1,实际上就是2个字节的内容了,不知道我这样理解有没错,我用bank1的板子还没到手,没法测试。
Time?And?Relative?Dimension?In?Space.
回复 支持 反对

使用道具 举报

46

主题

1579

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1970
金钱
1970
注册时间
2011-7-17
在线时间
4 小时
发表于 2013-8-10 11:45:06 | 显示全部楼层
回复【8楼】田晓生:
---------------------------------
根据我对FSMC的理解,如果按照你上面的地址弄的话,估计变化的只有A0,而不是A16
Time?And?Relative?Dimension?In?Space.
回复 支持 反对

使用道具 举报

11

主题

62

帖子

0

精华

初级会员

Rank: 2

积分
126
金钱
126
注册时间
2013-4-22
在线时间
0 小时
 楼主| 发表于 2013-8-19 11:55:35 | 显示全部楼层
回复【18楼】Tardis:
---------------------------------
     最近一直在忙其它的事没有及时地看到你的回复。

   因为数据位数是16位的,所以每次地址每次进二,因此A0始终是保持为0。在初始化的时候直接赋值为0x6001fffe,操作cmd后地址自动加2,这时由于数据是16位的所以地址就变成了0x60020000,A16就成1了。
示意图如下:
 CMD赋值的时候FSMC_A引脚的状态:
 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00
 00 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 00
 DAT赋值时候FSMC_A引脚的状态:
 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00
 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
山登绝顶我为峰!
回复 支持 反对

使用道具 举报

11

主题

62

帖子

0

精华

初级会员

Rank: 2

积分
126
金钱
126
注册时间
2013-4-22
在线时间
0 小时
 楼主| 发表于 2013-8-19 14:18:57 | 显示全部楼层
谢谢,之前的改动都是正确的,只是因为程序中有一处不经意给误改了,所以导致总是不成功,后来又重新建了一个新的工程,现在已经一切正常了!
山登绝顶我为峰!
回复 支持 反对

使用道具 举报

46

主题

1579

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1970
金钱
1970
注册时间
2011-7-17
在线时间
4 小时
发表于 2013-8-19 14:39:49 | 显示全部楼层
回复【20楼】田晓生:
---------------------------------
现在问题就是,你数据位设置为2字节的,而且是SRAM模式,也就是,一个地址对应2字节内容,地址0对应0,1字节,地址1对应2,3字节,所以根据这样来算,地址应该不会增加2,而是增加1.
Time?And?Relative?Dimension?In?Space.
回复 支持 反对

使用道具 举报

11

主题

62

帖子

0

精华

初级会员

Rank: 2

积分
126
金钱
126
注册时间
2013-4-22
在线时间
0 小时
 楼主| 发表于 2013-8-19 15:51:00 | 显示全部楼层
数据定义的是16位的,地址自增的时候自增2字节,但一个地址对应的存储空间应该是一个字节,所以地址会一次增加2。 
   嘿嘿,其实对这块我也不是很清楚,不过原子哥好像就是这样讲的,你可以和他聊一下。
山登绝顶我为峰!
回复 支持 反对

使用道具 举报

46

主题

1579

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1970
金钱
1970
注册时间
2011-7-17
在线时间
4 小时
发表于 2013-8-19 20:09:15 | 显示全部楼层
回复【23楼】田晓生:
---------------------------------
不用了,兄弟,谢谢你的提点,我弄出来了,原来你的理论是正确的,STM32的FSMC地址在内部里面会被右移一位来弄的。
A16实际上对应的地址应该是0x6001fffe,而且,地址递增也是加1,刚实验出来了,这也就是为什么我之前尝试把图片解码后放进外部SRAM后,一次过刷进LCD却总是丢数据的原因。
Time?And?Relative?Dimension?In?Space.
回复 支持 反对

使用道具 举报

11

主题

62

帖子

0

精华

初级会员

Rank: 2

积分
126
金钱
126
注册时间
2013-4-22
在线时间
0 小时
 楼主| 发表于 2013-8-19 20:49:43 | 显示全部楼层
回复【24楼】Tardis:
---------------------------
呵呵,我是刚从51转到32,对很多东西都是一知半解,不过可以看出你学的比我深多了,以后有问题时还希望兄弟能不吝赐教。
山登绝顶我为峰!
回复 支持 反对

使用道具 举报

46

主题

1579

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1970
金钱
1970
注册时间
2011-7-17
在线时间
4 小时
发表于 2013-8-21 08:28:38 | 显示全部楼层
回复【25楼】田晓生:
---------------------------------
我也是跟原子哥学的,玩STM32都有2年了。
Time?And?Relative?Dimension?In?Space.
回复 支持 反对

使用道具 举报

46

主题

1579

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1970
金钱
1970
注册时间
2011-7-17
在线时间
4 小时
发表于 2013-8-21 08:28:59 | 显示全部楼层
回复【25楼】田晓生:
---------------------------------
不过在PCB设计上,总是考虑不周到。
Time?And?Relative?Dimension?In?Space.
回复 支持 反对

使用道具 举报

11

主题

62

帖子

0

精华

初级会员

Rank: 2

积分
126
金钱
126
注册时间
2013-4-22
在线时间
0 小时
 楼主| 发表于 2013-8-21 20:35:06 | 显示全部楼层
STM32又不牵涉高频,在走线上我感觉应该不是很难吧?
山登绝顶我为峰!
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-17 01:35

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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