事情是这样的。。我朋友有个傻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
--------------------------------------------------------------------\
|