OpenEdv-开源电子网

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

求助8位数据线下ILI9235读点方法

[复制链接]

39

主题

137

帖子

3

精华

高级会员

Rank: 4

积分
802
金钱
802
注册时间
2012-9-21
在线时间
31 小时
发表于 2012-9-21 14:25:50 | 显示全部楼层 |阅读模式

最近移植了ucGUI ,发现触摸光标会拖影,初步怀疑是读点函数有问题,查了datasheet,在8位模式下读GRAM 前两次是dummy,从第三次开始读出高8位,第4次是低八位,程序也查此写了,就是不行。求高手赐教。感谢!下面是我的读点函数。

我使用的是8位模式,ILI9235的数据线只有DB0-DB7,分别接GPIOB的p0-p7口。买的ILI9235模块就是八位,没有DB8-DB15管脚.

原子大哥,求帮助!

unsigned int LCD_L0_GetPixelIndex(int x, int y)
{
  u16 temp;
    Clr_Cs;



        Clr_Rs;
        Set_nRd;
        GPIOB->ODR = 0x0000;
        Clr_nWr;
        Set_nWr;
        GPIOB->ODR = 0x0020;
        Clr_nWr;
        Set_nWr;
   
        Set_Rs;
        Set_nRd;
          GPIOB->ODR = y>>8;
        Clr_nWr;
        Set_nWr;
          GPIOB->ODR = y;
        Clr_nWr;
        Set_nWr;
   


        Clr_Rs;
        Set_nRd;
        GPIOB->ODR = 0x0000;
        Clr_nWr;
        Set_nWr;
        GPIOB->ODR = 0x0021;
        Clr_nWr;
        Set_nWr;
   
        Set_Rs;
        Set_nRd;
          GPIOB->ODR = (319-x)>>8; //我使用的是横屏模式
        Clr_nWr;
        Set_nWr;
          GPIOB->ODR = (319-x);
        Clr_nWr;
        Set_nWr;
   

        Clr_Rs;
        Set_nRd;
        GPIOB->ODR = 0x0000;
        Clr_nWr;
        Set_nWr;
        GPIOB->ODR = 0x0022;
        Clr_nWr;
        Set_nWr;
        GPIOB->CRL=0X88888888; //PB0-7  上拉输入
        GPIOB->ODR=0X00FF;     //全部输出高

        Set_Rs;

        Clr_nRd;
        Set_nRd;
        Clr_nRd;
        Set_nRd;
        Clr_nRd;
        Set_nRd;
        temp = GPIOB->IDR;
        temp =temp<<8;
        Clr_nRd;
                Set_nRd;
        temp|= GPIOB->IDR;
        GPIOB->CRL=0X33333333; //PB0-7  上拉输出
        GPIOB->ODR=0X00FF;    //全部输出高

        
        return (((temp)  & 0x1f)<<11) + (((temp>>5)  & 0x3f)<<5) + (((temp>>11) & 0x1f)); //转换成RGB数据
}

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

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165377
金钱
165377
注册时间
2010-12-1
在线时间
2111 小时
发表于 2012-9-21 17:29:27 | 显示全部楼层
没搞过8位的读,建议你抛开ucGUI,裸跑实现下先,裸跑能实现了,问题就不大了。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

39

主题

137

帖子

3

精华

高级会员

Rank: 4

积分
802
金钱
802
注册时间
2012-9-21
在线时间
31 小时
 楼主| 发表于 2012-9-22 09:12:02 | 显示全部楼层
回复【2楼】正点原子:
--------------------------------
呵呵,问题已经搞定,读数据时舍弃IDR寄存器的高八位即可。
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-27 23:17

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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