硬汉嵌入式论坛

 找回密码
 立即注册
查看: 13139|回复: 14
收起左侧

[有问必答] RA8875显示问题,求教。

[复制链接]

7

主题

42

回帖

63

积分

初级会员

积分
63
发表于 2014-3-7 09:28:32 | 显示全部楼层 |阅读模式
RA8875,跑示例,显示异常,如下图。

还有就是读内存,全是0,
u16 RA8875_GetPixel(u16 X,u16 Y)
{
u16 RGB;
RA8875_WAITSTATUS();
Memory_read_Coordinate(X,Y);   
WriteCommand(0x02);
RGB = RA8875_RAM;
Bus_Delay(10);
RGB = RA8875_RAM;
RA8875_WAITSTATUS();
return RGB;
}
FSMC调了也不用。

static void LCD_FSMCConfig(void)
{
FSMC_NORSRAMInitTypeDef  init;
FSMC_NORSRAMTimingInitTypeDef  timingWrite;
FSMC_NORSRAMTimingInitTypeDef  timingRead;
/*-- FSMC Configuration ------------------------------------------------------*/
/*----------------------- SRAM Bank 4 ----------------------------------------*/
/* FSMC_Bank1_NORSRAM4 configuration */
/* 摄像头DMA麻点,需设置 4 0 5 2 0 0 */
timingWrite.FSMC_AddressSetupTime = 2;
timingWrite.FSMC_AddressHoldTime = 0;
timingWrite.FSMC_DataSetupTime = 2;
timingWrite.FSMC_BusTurnAroundDuration = 1;
timingWrite.FSMC_CLKDivision = 0;
timingWrite.FSMC_DataLatency = 0;
timingWrite.FSMC_AccessMode = FSMC_AccessMode_A;
timingRead.FSMC_AddressSetupTime = 3;
timingRead.FSMC_AddressHoldTime = 0;
timingRead.FSMC_DataSetupTime = 6;
timingRead.FSMC_BusTurnAroundDuration = 1;
timingRead.FSMC_CLKDivision = 0;
timingRead.FSMC_DataLatency = 0;
timingRead.FSMC_AccessMode = FSMC_AccessMode_A;

/*
  LCD configured as follow:
     - Data/Address MUX = Disable
     - Memory Type = SRAM
     - Data Width = 16bit
     - Write Operation = Enable
     - Extended Mode = Enable
     - Asynchronous Wait = Disable
*/
init.FSMC_Bank = FSMC_Bank1_NORSRAM4;
init.FSMC_DataAddressMux = FSMC_DataAddressMux_Disable;
init.FSMC_MemoryType = FSMC_MemoryType_SRAM;
init.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_16b;
init.FSMC_BurstAccessMode = FSMC_BurstAccessMode_Disable;
init.FSMC_AsynchronousWait = FSMC_AsynchronousWait_Disable; /* 注意旧库无这个成员 */
init.FSMC_WaitSignalPolarity = FSMC_WaitSignalPolarity_Low;
init.FSMC_WrapMode = FSMC_WrapMode_Disable;
init.FSMC_WaitSignalActive = FSMC_WaitSignalActive_BeforeWaitState;
init.FSMC_WriteOperation = FSMC_WriteOperation_Enable;
init.FSMC_WaitSignal = FSMC_WaitSignal_Disable;
init.FSMC_AsynchronousWait = FSMC_AsynchronousWait_Disable;
init.FSMC_ExtendedMode = FSMC_ExtendedMode_Disable;
init.FSMC_WriteBurst = FSMC_WriteBurst_Disable;

init.FSMC_ReadWriteTimingStruct = &timingRead;
init.FSMC_WriteTimingStruct = &timingWrite;
FSMC_NORSRAMInit(&init);
/* - BANK 1 (of NOR/SRAM Bank 1~4) is enabled */
FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM4, ENABLE);
}
求解。
DSC_0467_20143792213.JPG

中间有条线

中间有条线

好多条

好多条
DSC_0467_20143792317.JPG
DSC_0467_20143792326.JPG

评分

参与人数 1 +3 收起 理由
eric2013 + 3 图片显示功能很帅

查看全部评分

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107452
QQ
发表于 2014-3-7 10:20:47 | 显示全部楼层
首先感谢楼主发这个帖子,发现论坛也可以这么发图片。
你可以先把触摸功能关闭了试试看,因为在使用RA8875的情况下,刷屏和触摸操作都需要使用FSMC通讯,也就是说有冲突
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107452
QQ
发表于 2014-3-7 11:03:18 | 显示全部楼层
我试了下图片的显示方式,无法实现你上面的那种方式显示,你要是有时候的教我一下你是怎么设置的。
回复

使用道具 举报

7

主题

42

回帖

63

积分

初级会员

积分
63
 楼主| 发表于 2014-3-7 12:37:18 | 显示全部楼层
感谢大家,我关中断试试。
回复

使用道具 举报

7

主题

42

回帖

63

积分

初级会员

积分
63
 楼主| 发表于 2014-3-7 12:39:01 | 显示全部楼层
点小图就成这样了。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107452
QQ
发表于 2014-3-7 13:02:59 | 显示全部楼层

回 physh 的帖子

physh:点小图就成这样了。 (2014-03-07 12:39) 
小图是在哪里点击的,能发个截图不,感谢
回复

使用道具 举报

7

主题

42

回帖

63

积分

初级会员

积分
63
 楼主| 发表于 2014-3-8 12:54:16 | 显示全部楼层
仔细想了想,应该不是触摸中断与FSMC冲突引起的,触摸是轮询方式,没用硬件中断,而且是跑的例程,没有触摸。不用UCGUI,用RA8875硬件画图正常。应该是UCGUI设置问题吧,我用的是外部的RAM。本人认为。还有一个安富莱的图片放大的例程,在我这跑,只有显示屏的上半部显示,下半部黑屏。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107452
QQ
发表于 2014-3-8 14:09:47 | 显示全部楼层

回 physh 的帖子

physh:仔细想了想,应该不是触摸中断与FSMC冲突引起的,触摸是轮询方式,没用硬件中断,而且是跑的例程,没有触摸。不用UCGUI,用RA8875硬件画图正常。应该是UCGUI设置问题吧,我用的是外部的RAM。本人认为。还有一个安富莱的图片放大的例程,在我这跑,只有显示屏的上半部显示,下半部 .. (2014-03-08 12:54) 
降低下FSMC的速度试试
回复

使用道具 举报

0

主题

1

回帖

0

积分

新手上路

积分
0
发表于 2014-5-20 23:21:58 | 显示全部楼层
正在使用8875,请求加楼主好友
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107452
QQ
发表于 2014-5-21 09:53:41 | 显示全部楼层

回 johnny092 的帖子

johnny092:正在使用8875,请求加楼主好友 (2014-05-20 23:21) 
μCOS&emWin&μCGUI群: 216681322
回复

使用道具 举报

0

主题

11

回帖

0

积分

新手上路

积分
0
发表于 2014-7-6 10:18:12 | 显示全部楼层
不知道 楼主的问题 解决了 没有  我的板子  也是加载了个SRAM在 FSMC总线上面,会出现02指令读RA8875 RAM数据返回值为0,这样造成光标 拖动 有黑影(因为读取的像数值是错误的),,但是 去掉SRAM 也就是FSMC总线 直挂载  RA8875 这时候 可以  读取像数 值~~ 为此 很困惑 ,,,寻求 解决方法
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107452
QQ
发表于 2014-7-6 11:10:41 | 显示全部楼层

回 zhaxiaobian_ 的帖子

zhaxiaobian_:不知道 楼主的问题 解决了 没有  我的板子  也是加载了个SRAM在 FSMC总线上面,会出现02指令读RA8875 RAM数据返回值为0,这样造成光标 拖动 有黑影(因为读取的像数值是错误的),,但是 去掉SRAM 也就是FSMC总线 直挂载  RA8875 这时候 可以 & .. (2014-07-06 10:18) 
你分别是用的那个片选外挂的SRAM和TFT
回复

使用道具 举报

0

主题

11

回帖

0

积分

新手上路

积分
0
发表于 2014-7-14 09:53:25 | 显示全部楼层

回 eric2013 的帖子

eric2013:你分别是用的那个片选外挂的SRAM和TFT (2014-07-06 11:10) 
8875用的是NE1
  /* 定义LCD驱动器的访问地址 */
    #define RA8875_BASE        ((uint32_t)(0x60000000 ))

    #define RA8875_REG        *(__IO uint16_t *)(RA8875_BASE+ (1 << 17))
    #define RA8875_RAM        *(__IO uint16_t *)(RA8875_BASE)
SRAM用的是NE3
#define Bank1_SRAM3_ADDR    ((u32)0x68000000)
#define SRAM_WRITE(Address, Data)  (*(vu16 *)(Address) = (Data))
回复

使用道具 举报

0

主题

11

回帖

0

积分

新手上路

积分
0
发表于 2014-7-14 10:37:25 | 显示全部楼层

回 zhaxiaobian_ 的帖子

zhaxiaobian_:8875用的是NE1
  /* 定义LCD驱动器的访问地址 */
    #define RA8875_BASE        ((uint32_t)(0x60000000 ))

....... (2014-07-14 09:53) 
问题解决了,RA8875片选接上拉后,读像素点RGB颜色正常。       我现在有个疑问STM32的FSMC_NE1配置的是推挽输出,按道理来说,驱动能力是比较大的,上拉电阻完全可以省掉,但是为什么 会出现这个问题。。。
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-6-1 12:02 , Processed in 0.222321 second(s), 35 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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