硬汉嵌入式论坛

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

[有问必答] ILI9341读点读出来都是0是怎么回事

[复制链接]

20

主题

110

回帖

170

积分

初级会员

积分
170
发表于 2018-5-7 22:19:20 | 显示全部楼层 |阅读模式
用FSMC驱动的。debug发现LCD_RD_DAT();返回的数据是0。
  1. /*------- 读数据 -------*/
  2. u16 LCD_RD_DAT(void)
  3. {
  4.         vu16 dat;
  5.        
  6.         dat = LCD_DAT;
  7.         return dat;
  8. }
复制代码

  1. u16 LCD_ReadPoint(u16 x,u16 y)//x坐标,y坐标
  2. {
  3.     u16 r,g,b;
  4.      
  5.     /*设置点的坐标*/
  6.     LCD_WR_CMD(LCD_CMD_COLADDR);//设置列地址
  7.     LCD_WR_DAT_def(x>>8);         //x起始地址
  8.     LCD_WR_DAT_def(x&0x00ff);
  9.     LCD_WR_DAT_def(x>>8);     //x结束地址
  10.     LCD_WR_DAT_def(x&0x00ff);
  11.      
  12.     LCD_WR_CMD(LCD_CMD_ROWADDR);//设置行地址
  13.     LCD_WR_DAT_def(y>>8);         //y起始地址
  14.     LCD_WR_DAT_def(y&0x00ff);      
  15.     LCD_WR_DAT_def(y>>8);     //y结束地址
  16.     LCD_WR_DAT_def(y&0x00ff);
  17.      
  18.     LCD_WR_CMD(LCD_CMD_GRAM);
  19.      
  20.      
  21.     LCD_RD_DAT(); //读GRAM时,第一次读出数据是无效的
  22.     lcddelay_us(2);
  23.      
  24.     r = LCD_RD_DAT();//接下来读出的是RG值,R在前,G在后,各占8位
  25.     lcddelay_us(2);
  26.     b = LCD_RD_DAT();//蓝色值
  27.     g = (r & 0x00ff) << 8;//绿色值
  28.      
  29.     return ((r & ~0x07ff) | ((g & ~0x03ff) >> 5) | (b >> 11));
  30. }
复制代码
  1. /*读时序配置*/
  2.     readwriteTiming.FSMC_AddressSetupTime = 1;//ADDSET地址建立(保持)时间为1+1个HCLK,RD保持高电平的时间
  3.     readwriteTiming.FSMC_AddressHoldTime = 0; //ADDHLD地址保持时间,A模式未使用到,给0即可
  4.     readwriteTiming.FSMC_DataSetupTime = 15;  //DATAST数据建立(保持)时间为15+1个HCLK,RD保持低电平的时间
  5.     readwriteTiming.FSMC_BusTurnAroundDuration = 0;
  6.     readwriteTiming.FSMC_CLKDivision = 0;  //时钟不分割
  7.     readwriteTiming.FSMC_DataLatency = 0;
  8.     readwriteTiming.FSMC_AccessMode = FSMC_AccessMode_A;//访问模式,使用模式A
复制代码



回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106959
QQ
发表于 2018-5-8 01:23:42 | 显示全部楼层
读ID是否正常,如果这个也异常,说明你的配置或者硬件有问题。
回复

使用道具 举报

20

主题

110

回帖

170

积分

初级会员

积分
170
 楼主| 发表于 2018-5-8 12:56:54 | 显示全部楼层
eric2013 发表于 2018-5-8 01:23
读ID是否正常,如果这个也异常,说明你的配置或者硬件有问题。

正好用读ID确定了不是时序问题,后来发现是读GRAM命令的宏定义写错了,低级错误。。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-12 05:52 , Processed in 0.170722 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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