OpenEdv-开源电子网

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

请教原子哥。。。TFT屏的问题。。

[复制链接]

22

主题

46

帖子

0

精华

初级会员

Rank: 2

积分
178
金钱
178
注册时间
2013-11-19
在线时间
22 小时
发表于 2013-11-19 20:15:45 | 显示全部楼层 |阅读模式
事情是这样的。。我朋友有个傻x得开发板(这家板子,太2了。。)。。。。。像原子的TFT。。。PB0--15做DATA0--15.很合理。。。。而这个板子,PC0--PC7做DATA0--7........PB8---15,做data8--15
   (这样的设计,堪称狗血了吧)     现在朋友让我帮他点亮,tft。。。是个美女。。可我搞了一下午。也没搞定。。。看他们PDF,应该是I9320    驱动的。。。本来也是个菜鸟。。。。。。。。。。。。。。。。。。。。。。。
  好吧,我写了一点程序,来代替原子源程序中的宏定义。。请问这样可以吗? 望高手,指点。。。

以前都是宏定义   
//#define DATAOUT(x) GPIOB->ODR=x; //数据输出
//#define DATAIN     GPIOB->IDR;   //数据输入




我改成了下面:




void DATAOUT(u16 dat)
{
  u16 temp_dat;
  temp_dat=dat&0x0000ffff;
  GPIOC->ODR|=temp_dat;
  temp_dat=dat&0xffff0000;
  GPIOB->ODR|=temp_dat;
}
int DATAIN(void)
{
 u16 dat1,dat2,dat_sum;
 dat1=GPIOC->IDR;
 dat1=dat1&0x0000ffff;
 dat2=GPIOB->IDR;
 dat2=dat2&0xffff0000;
 dat_sum=dat1|dat2;
 return dat_sum;
}

void LCD_WR_DATA(u16 dat)
{
 LCD_RS=1;
 LCD_CS=0;
 DATAOUT(dat);
 LCD_WR=0;
 delay_ms(2);
 LCD_WR=1;
 LCD_CS=1;
}


另附:管脚连接,望高手帮忙。。。
/*--------------------------PC8---------------CS
                            PC9---------------RS
 C10--------------WR
PC11--------------RD
PC12--------------BL_EN
DATA[0..7]--------PC0---PC7
DATA[8..15]-------PB0---PB7
--------------------------------------------------------------------\


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

使用道具 举报

38

主题

2061

帖子

6

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3273
金钱
3273
注册时间
2012-1-16
在线时间
37 小时
发表于 2013-11-19 22:12:54 | 显示全部楼层
回复【楼主位】xiaopidan:
---------------------------------
确实有点狗血,我也不能确定,你先测试下能不能出效果,实在不行就吧硬件改成8位的试试
站在巨人的肩膀上不断的前进。。。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-11-19 22:51:54 | 显示全部楼层
void DATAOUT(u16 dat)
{
  u16 temp_dat;
  temp_dat=dat&0x0000ffff;  
  GPIOC->ODR&=0XFF00
  GPIOC->ODR|=temp_dat;
  temp_dat=dat&0xff00;  
  GPIOB->ODR&=0X00FF  
  GPIOB->ODR|=temp_dat;
}
改为:
void DATAOUT(u16 dat)
{
  u16 temp_dat;
  temp_dat=dat&0x00ff;
  GPIOC->ODR|=temp_dat;
  temp_dat=dat&0xffff0000;
  GPIOB->ODR|=temp_dat;
}
 试试,DAT是16位的,不是32位的呢...
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-9 00:03

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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