OpenEdv-开源电子网

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

TFT液晶单步调试LCD_RS问题

[复制链接]

36

主题

195

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
313
金钱
313
注册时间
2014-10-27
在线时间
34 小时
发表于 2015-2-10 11:39:02 | 显示全部楼层 |阅读模式
5金钱

原子哥,我买的旗舰版F103的,我在单步调试TFT显示实验的时候有点不理解,在这个试验中你是地址线A10(PG0)做的RS,我在单步调试的时候,执行LCD->LCD_RAM=data后PG0是高电平,而执行LCD->LCD_REG=regval后PG0是低电平,这个可以理解。

你的结构体中:

typedef struct
{
 u16 LCD_REG;
 u16 LCD_RAM;
} LCD_TypeDef;

LCD_REG地址是0X6C0007FE,而LCD_RAM地址是0X6C000800,对应下来操作寄存器时A10为0、A9-A0为1;操作数据时A10为1、A9-A0为0,。我现在是想看看A0-A9是否也是如上对应,我看了下FSMC_A0为PF0,而FSMC_A1为PF1,我在你给的源代码中加了:开启GPIOF时钟和把PF0、PF1设置为复用推挽输出。结果我单步调试时,发现LCD->LCD_RAM=data、LCD->LCD_REG=regval后PF0和PF1都为低电平,这个貌似不正常吧,是我哪边设置忘记设置了吗。

[mw_shl_code=c,true]RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOD|RCC_APB2Periph_GPIOE|RCC_APB2Periph_GPIOF|RCC_APB2Periph_GPIOG|RCC_APB2Periph_AFIO,ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOF, &GPIO_InitStructure);[/mw_shl_code]

最佳答案

查看完整内容[请看2#楼]

这个是硬件控制的,只有在CS为低的时候,A0~Axx的值,才有意义。当CS为高的时候,A0~Axx的值为什么状态,并不影响结果。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-2-10 11:39:03 | 显示全部楼层
这个是硬件控制的,只有在CS为低的时候,A0~Axx的值,才有意义。当CS为高的时候,A0~Axx的值为什么状态,并不影响结果。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

3

主题

2170

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5782
金钱
5782
注册时间
2013-11-22
在线时间
1212 小时
发表于 2015-2-10 22:44:56 | 显示全部楼层
对应 LCD_REG,LCD_RAM的地址改了没?
回复

使用道具 举报

36

主题

195

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
313
金钱
313
注册时间
2014-10-27
在线时间
34 小时
 楼主| 发表于 2015-2-11 10:49:58 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
原子哥,我认为A0-Axx都是等价的吧。0X6C0007FE时量出来A10为低电平,那么(使能了A0,A1)A0和A1量出来应该是高电平;0X6C000800时量出来A10为高电平,那么(使能了A0,A1)A0和A1量出来应该是低电平。
如果我在使用FSMC驱动TFT时又要用到PF0(FSMC_A0)来控制外部一个led,是不是只需把PF0设置成推挽输出就不受影响了?如果是复用推挽输出就不受到FSMC影响了?
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-2-13 22:45:31 | 显示全部楼层
回复【4楼】善良的二哥:
---------------------------------
复用推挽输出就不受到FSMC影响了,错了
复用推完输出,就受影响!!!
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

36

主题

195

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
313
金钱
313
注册时间
2014-10-27
在线时间
34 小时
 楼主| 发表于 2015-2-15 09:26:47 | 显示全部楼层
回复【5楼】正点原子:
---------------------------------
好的,谢谢原子哥。提前祝原子哥新年快乐,论坛越办越好!
回复

使用道具 举报

6

主题

50

帖子

0

精华

初级会员

Rank: 2

积分
108
金钱
108
注册时间
2013-12-14
在线时间
4 小时
发表于 2015-3-7 11:06:16 | 显示全部楼层
回复【5楼】正点原子:
---------------------------------
原子哥,这么说的话, 在操作,FSMC的时候,RS地址线确定好后,其他的FSMC地址线的IO口就不能复用其功能了吗?
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-3-7 23:16:42 | 显示全部楼层
回复【7楼】664653162:
---------------------------------
如果和FSMC共用,那么就要绕开了。但是FSMC的引脚,如果没用到,还是可以用来做普通IO使用的。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-25 06:46

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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