<br />为了配3寸的TFT屏,用了OPPO Luna的LPC 2103+ SSD1928,里面用FGPIO跟1928通讯,但它的程序不用那些FIOMASK。 其实那些东西有什麽用途呢?<br /><br />#ifdef LPC210X_FAST_GPIO<br />/* Fast General Purpose Input/Output (GPIO) */<br />#define FIODIR (*((volatile unsigned long *) 0x3FFFC000))<br />#define FIOMASK (*((volatile unsigned long *) 0x3FFFC010))<br />#define FIOPIN (*((volatile unsigned long *) 0x3FFFC014))<br />#define FIOSET (*((volatile unsigned long *) 0x3FFFC018))<br />#define FIOCLR (*((volatile unsigned long *) 0x3FFFC01C))<br />#define SCS (*((volatile unsigned long *) 0xE01FC1A0))<br />#define FIO0PIN (*((volatile unsigned char *) 0x3FFFC014))<br />#define FIO1PIN (*((volatile unsigned char *) 0x3FFFC015))<br />#define FIO0SET (*((volatile unsigned long *) 0x3FFFC018))<br />#define FIO1SET (*((volatile unsigned long *) 0x3FFFC019))<br />#endif<br />void PortInit()<br />{<br /> SCS = 1;//设置快速FGPIO模式 (0:GPIO; 1:fast GPIO)<br /> FIOPIN = 0x00000000;<br /> FIODIR|= 0xFFFFFFFF;<br /> PINSEL0 = 0x00000000;<br />}<br />#define indirect_cs_up() (FIOSET)=(1<<PORTD_CS);<br />#define indirect_cs_down() (FIOCLR)=(1<<PORTD_CS);<br />void indirect_IO_WriteData(UINT16 data)//write to GPIO<br />{ <br /> FIODIR=0xFFFFFFFF;//Bit15-0 for write<br /> (FIOCLR)=(0x0000FFFF);<br /> (FIOSET)=(data<<PORTD_DATA);<br />}<br />UINT16 indirect_IO_ReadData()//read from GPIO<br />{ <br /> FIODIR=0xFFFF0000;//Bit15-0 for read<br /> return (FIOPIN)&0xFFFF;<br />} |
|