OpenEdv-开源电子网

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

关于STM32F013VET6+RA8875方案中读DDRAM的问题

[复制链接]

7

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
68
金钱
68
注册时间
2015-7-20
在线时间
12 小时
发表于 2015-8-10 17:37:04 | 显示全部楼层 |阅读模式
5金钱
请教各位高手,我做了个STM32F103VET6+RA8875的方案,在调试中发现在读RA8875 DDRAM时,无法正常读出。
查看数据地址,发现数据前4个字节一直是0,到第5个字节才是正常字节,如:00 00 00 00 FF FF FF FF,这就造成我读的数据不正确。
麻烦大家帮我看看问题出在哪儿。
#define LCD_COMM_ADD *((vu16 *)0X6C000800)
 #define LCD_DATA_ADD *((vu16 *)0X6C000000)
 #define WriteCommand(cmd) {LCD_COMM_ADD = cmd;}
 #define WriteData(data) {LCD_DATA_ADD = data;}

void ra8875_init(void)
{
u8 i,temp;
GPIO_InitTypeDef GPIO_InitStructure;
  FSMC_NORSRAMInitTypeDef  FSMC_NORSRAMInitStructure;
  FSMC_NORSRAMTimingInitTypeDef  FSMC_LCDWRITE; 
 FSMC_NORSRAMTimingInitTypeDef  FSMC_LCDREAD; 
RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOD | RCC_APB2Periph_GPIOE | RCC_APB2Periph_GPIOG | RCC_APB2Periph_AFIO, ENABLE);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_14  | GPIO_Pin_15 | GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_8| GPIO_Pin_9 | GPIO_Pin_10| GPIO_Pin_4 | GPIO_Pin_5   ;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_Init(GPIOD, &GPIO_InitStructure);

  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7  | GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15  ;
  GPIO_Init(GPIOE, &GPIO_InitStructure);

  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_12 ;
  GPIO_Init(GPIOG, &GPIO_InitStructure);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15;//8875WAIT
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOG,&GPIO_InitStructure);

                        
  RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC, ENABLE);//开FSMC时钟
/*---------------FSMC配置----------------*/

   FSMC_LCDWRITE.FSMC_AddressSetupTime =0;
   FSMC_LCDWRITE.FSMC_AddressHoldTime = 0;
   FSMC_LCDWRITE.FSMC_DataSetupTime =3; 
   FSMC_LCDWRITE.FSMC_BusTurnAroundDuration = 0;
   FSMC_LCDWRITE.FSMC_CLKDivision = 0;
   FSMC_LCDWRITE.FSMC_DataLatency = 0;
   FSMC_LCDWRITE.FSMC_AccessMode = FSMC_AccessMode_A;
 
   FSMC_LCDREAD.FSMC_AddressSetupTime =0;
   FSMC_LCDREAD.FSMC_AddressHoldTime = 0;
   FSMC_LCDREAD.FSMC_DataSetupTime =3;
   FSMC_LCDREAD.FSMC_BusTurnAroundDuration = 0;
   FSMC_LCDREAD.FSMC_CLKDivision = 0;
   FSMC_LCDREAD.FSMC_DataLatency = 0;
   FSMC_LCDREAD.FSMC_AccessMode = FSMC_AccessMode_A;

  FSMC_NORSRAMInitStructure.FSMC_Bank = FSMC_Bank1_NORSRAM4;
  FSMC_NORSRAMInitStructure.FSMC_DataAddressMux = FSMC_DataAddressMux_Disable;
  FSMC_NORSRAMInitStructure.FSMC_MemoryType = FSMC_MemoryType_SRAM;
  FSMC_NORSRAMInitStructure.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_16b;
  FSMC_NORSRAMInitStructure.FSMC_BurstAccessMode = FSMC_BurstAccessMode_Disable;
 FSMC_NORSRAMInitStructure.FSMC_AsynchronousWait = FSMC_AsynchronousWait_Disable;   
  FSMC_NORSRAMInitStructure.FSMC_WaitSignalPolarity = FSMC_WaitSignalPolarity_Low;
  FSMC_NORSRAMInitStructure.FSMC_WrapMode = FSMC_WrapMode_Disable;
  FSMC_NORSRAMInitStructure.FSMC_WaitSignalActive = FSMC_WaitSignalActive_BeforeWaitState;
  FSMC_NORSRAMInitStructure.FSMC_WriteOperation = FSMC_WriteOperation_Enable;
  FSMC_NORSRAMInitStructure.FSMC_WaitSignal = FSMC_WaitSignal_Disable;
  FSMC_NORSRAMInitStructure.FSMC_ExtendedMode = FSMC_ExtendedMode_Enable;//此处大部分例程设为禁止,我设为禁止时什么数都读不出来
  FSMC_NORSRAMInitStructure.FSMC_WriteBurst = FSMC_WriteBurst_Disable;

  FSMC_NORSRAMInitStructure.FSMC_ReadWriteTimingStruct = &FSMC_LCDREAD;
  FSMC_NORSRAMInitStructure.FSMC_WriteTimingStruct = &FSMC_LCDWRITE;

  FSMC_NORSRAMInit(&FSMC_NORSRAMInitStructure);
  FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM4, ENABLE);
}

//------------------内存读出时光标起始点设置(图形模式)------------------//
void SetCursor_Memread(u16 x0,u16 y0)
{
WriteReg(0x45, 0x00);
WriteReg(0x4a, x0);
WriteReg(0x4b, x0 >> 8);
WriteReg(0x4c, y0);
WriteReg(0x4d, y0 >> 8); 
}

//------------------获取点的颜色-------------------//
u16 LCD_GetPixel(u16 x0,u16 y0)

u16 temp;
SetCursor_Memread(x0,y0);
LCD_COMM_ADD = 0x02;
temp=LCD_DATA_ADD ;
return temp;
}

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-8-10 22:21:31 | 显示全部楼层
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-18 19:16

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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