野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 11875|回复: 10

用stm32f103ve驱动 ili9341液晶屏读到的lD= 0x80ff

[复制链接]
发表于 2016-12-20 16:06:46 | 显示全部楼层 |阅读模式
          lcddev.id=LCD_ReadReg(0x0000);


回复

使用道具 举报

发表于 2016-12-20 16:08:26 | 显示全部楼层
所以正常的是什么?用我们的程序测试
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-12-20 16:10:53 | 显示全部楼层
flyleaf 发表于 2016-12-20 16:08
所以正常的是什么?用我们的程序测试

正常的不应该读到9341吗。。
回复 支持 反对

使用道具 举报

发表于 2016-12-20 17:14:35 | 显示全部楼层
我什么都想知道 发表于 2016-12-20 16:10
正常的不应该读到9341吗。。

那就检查下驱动的代码是不是有什么地方写错了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-12-21 09:09:10 | 显示全部楼层
flyleaf 发表于 2016-12-20 17:14
那就检查下驱动的代码是不是有什么地方写错了

我参考例程写的fsmc 有问题吗?

  1.     GPIO_InitTypeDef GPIO_InitStructure;
  2.    
  3.     /* 使能FSMC时钟*/
  4.     RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC, ENABLE);
  5.    
  6.     /* 使能FSMC对应相应管脚时钟*/
  7.     RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOD | RCC_APB2Periph_GPIOE | RCC_APB2Periph_AFIO,ENABLE);
  8.    

  9.     /* 配置FSMC相对应的数据线,*/       
  10.     GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  11.     GPIO_InitStructure.GPIO_Mode =  GPIO_Mode_AF_PP;//复用推挽
  12.      /* PD 9 11*/       
  13.     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9;
  14.     GPIO_Init(GPIOD, &GPIO_InitStructure);
  15.     /* PE 10 11 12 13 14 15*/
  16.     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10 | GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_13 |
  17.                                   GPIO_Pin_14 | GPIO_Pin_15;
  18.     GPIO_Init(GPIOE, &GPIO_InitStructure);
  19.    
  20.                 /* 配置FSMC相对应的控制线
  21.                  * PD4-FSMC_NOE   :LCD-RD
  22.                  * PD5-FSMC_NWE   :LCD-WR
  23.                  * PD7-FSMC_NE1   :LCD-CS
  24.                  * PD11-FSMC_A16  :LCD-DC
  25.                 */
  26.     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;
  27.     GPIO_Init(GPIOD, &GPIO_InitStructure);
  28.    
  29.     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
  30.     GPIO_Init(GPIOD, &GPIO_InitStructure);
  31.    
  32.     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;
  33.     GPIO_Init(GPIOD, &GPIO_InitStructure);  
  34.    
  35.     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;
  36.     GPIO_Init(GPIOD, &GPIO_InitStructure);  

  37.     FSMC_NORSRAMInitTypeDef  FSMC_NORSRAMInitStructure;
  38.     FSMC_NORSRAMTimingInitTypeDef  p;
  39.    
  40.    
  41.     p.FSMC_AddressSetupTime = 0x02;         //地址建立时间
  42.     p.FSMC_AddressHoldTime = 0x00;         //地址保持时间
  43.     p.FSMC_DataSetupTime = 0x05;                 //数据建立时间
  44.     p.FSMC_BusTurnAroundDuration = 0x00;
  45.     p.FSMC_CLKDivision = 0x00;
  46.     p.FSMC_DataLatency = 0x00;
  47.     p.FSMC_AccessMode = FSMC_AccessMode_B;         
  48.    
  49.     FSMC_NORSRAMInitStructure.FSMC_Bank = FSMC_Bank1_NORSRAM1;
  50.     FSMC_NORSRAMInitStructure.FSMC_DataAddressMux = FSMC_DataAddressMux_Disable;

  51.     FSMC_NORSRAMInitStructure.FSMC_MemoryType = FSMC_MemoryType_NOR;
  52.     FSMC_NORSRAMInitStructure.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_16b;
  53.     FSMC_NORSRAMInitStructure.FSMC_BurstAccessMode = FSMC_BurstAccessMode_Disable;
  54.     FSMC_NORSRAMInitStructure.FSMC_WaitSignalPolarity = FSMC_WaitSignalPolarity_Low;
  55.     FSMC_NORSRAMInitStructure.FSMC_WrapMode = FSMC_WrapMode_Disable;
  56.     FSMC_NORSRAMInitStructure.FSMC_WaitSignalActive = FSMC_WaitSignalActive_BeforeWaitState;
  57.     FSMC_NORSRAMInitStructure.FSMC_WriteOperation = FSMC_WriteOperation_Enable;
  58.     FSMC_NORSRAMInitStructure.FSMC_WaitSignal = FSMC_WaitSignal_Disable;
  59.     FSMC_NORSRAMInitStructure.FSMC_ExtendedMode = FSMC_ExtendedMode_Disable;
  60.     FSMC_NORSRAMInitStructure.FSMC_WriteBurst = FSMC_WriteBurst_Disable;
  61.     FSMC_NORSRAMInitStructure.FSMC_ReadWriteTimingStruct = &p;
  62.     FSMC_NORSRAMInitStructure.FSMC_WriteTimingStruct = &p;  
  63.    
  64.     FSMC_NORSRAMInit(&FSMC_NORSRAMInitStructure);
  65.    
  66.     /* 使能 FSMC Bank1_SRAM Bank */
  67.     FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM1, ENABLE);  
复制代码

回复 支持 反对

使用道具 举报

发表于 2016-12-21 09:23:02 | 显示全部楼层
sram的bank引脚改了,地址也要改
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-12-21 09:48:55 | 显示全部楼层
flyleaf 发表于 2016-12-21 09:23
sram的bank引脚改了,地址也要改

根据电路  LCD_CS连的NE1  LCD_RS连的A16  应该是FSMC_Bank1_NORSRAM1
  1. #define LCD_REG_ADD (uint32_t)0x60000000
  2. #define LCD_RAM_ADD (uint32_t)0x60020000


  3. #define LCDREG             ((LCDREG_TypeDef *) LCD_REG_ADD)
  4. #define LCDRAM             ((LCDRAM_TypeDef *) LCD_RAM_ADD)
复制代码
回复 支持 反对

使用道具 举报

发表于 2016-12-21 09:52:00 | 显示全部楼层
我什么都想知道 发表于 2016-12-21 09:48
根据电路  LCD_CS连的NE1  LCD_RS连的A16  应该是FSMC_Bank1_NORSRAM1

没看出问题
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-12-21 10:09:16 | 显示全部楼层

下面是我的写入命令的函数,怎么判断命令有没有写入0x60000000地址?
  1. void LcdWrCmd(uint8_t LCD_RegValue)
  2. {
  3.         LCDREG->LCD_REG = (uint16_t)LCD_RegValue;

  4. }
复制代码
回复 支持 反对

使用道具 举报

发表于 2016-12-21 10:49:07 | 显示全部楼层
我什么都想知道 发表于 2016-12-21 10:09
下面是我的写入命令的函数,怎么判断命令有没有写入0x60000000地址?

找一个可以读写的寄存器,写进去、读出来进行校验
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-12-21 11:23:02 | 显示全部楼层
flyleaf 发表于 2016-12-21 10:49
找一个可以读写的寄存器,写进去、读出来进行校验

例程中有这样的写法        lcd_read_temp = *( uint16_t*)(0x60020000);可以吗?
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-23 02:00 , Processed in 0.035103 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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