野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 24561|回复: 3

读取LCD的参数问题

[复制链接]
发表于 2015-7-29 17:19:06 | 显示全部楼层 |阅读模式

uint16_t LCD_RD_data(void)       
{       
        uint16_t R=0 ;
        R = *(__IO uint16_t *)Bank1_LCD_D;           /*FIRST READ OUT DUMMY DATA*/
        R = *(__IO uint16_t *)Bank1_LCD_D;          /*READ OUT RED DATA  */
        return R;
}   //这是改写教程上的读取数据的函数,我也不知道对不对,是Bank1_LCD_D还是Bank1_LCD_C呢?   我现在用的是Bank1_LCD_D。



LCD_ILI9341_CMD(0xDB);  //这个是读取LCD模块的驱动版本号的命令,第一读取的是空,第二个参数是驱动ID(芯片手册上说ID的范围是80H到FFH)。

tmp = LCD_RD_data();
printf("\n%Xh\r\n",tmp);

我用串口把该参数打印到串口调试助手上,显示的ID老是0.  请问错在哪里?????谢大神了!

回复

使用道具 举报

发表于 2015-7-30 09:06:52 | 显示全部楼层
没有问题,
你是不是把Bank1_LCD_D的宏定义改了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-7-30 10:25:42 | 显示全部楼层
flyleaf 发表于 2015-7-30 09:06
没有问题,
你是不是把Bank1_LCD_D的宏定义改了

/*RAM基地址= 0X60020000 = 0X60000000+2^16*2 = 0X60000000 + 0X20000 = 0X60020000*/
#define Bank1_LCD_C    ((u32)0x60000000)           //Disp Reg ADDR
#define Bank1_LCD_D    ((u32)0x60020000)     //Disp Data ADDR       // A16 PD11

#define LCD_WR_REG(index)    ((*(__IO u16 *) (Bank1_LCD_C)) = ((u16)index))
#define LCD_WR_Data(val)       ((*(__IO u16 *) (Bank1_LCD_D)) = ((u16)(val)))


我没有改定义,这是头文件上定义的,MINI的板子,我写命令,写参数都是正常的.
读函数就是上面定义的LCD_RD_data()。老是显示的是0。

#include "stm32f10x.h"
#include "bsp_ili9341_lcd.h"
#include "bsp_usart1.h"

int main(void)
{
        uint16_t tmp;       
        LCD_Init();
        LCD_Clear(0, 0, 240, 320, BACKGROUND);
       
        LCD_ILI9341_CMD(0xDB);
        tmp = LCD_RD_data();
       
        USART1_Config();
        NVIC_Configuration();
       
        printf("\n%Xh\r\n",tmp);       
}


这个是主函数。不知道错在哪里。

还有一个问题就是这个ILI9341的ID在哪里上可以找到,我想以后从寄存器读出来的时候好有个比较,看对不对。是在实物上面,还是在芯片手册上面有????

回复 支持 反对

使用道具 举报

发表于 2015-7-30 11:41:24 | 显示全部楼层
QQ截图20150730110658.png
uint16_t temp[4]={0};
........
ILI9341_Write_Cmd(0xd3);//不知你的0XDB哪来的
temp[0]=ILI9341_Read_Data();
temp[1]=ILI9341_Read_Data();
temp[2]=ILI9341_Read_Data();
temp[3]=ILI9341_Read_Data();
printf("temp:%04X %04X %04X %04X \n",temp[0],temp[1],temp[2],temp[3]);


串口打印结果:temp:0000 0000 0093 0041
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-6 13:57 , Processed in 0.041994 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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