⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 3spi 18位.txt

📁 st7920lcm屏的初始化和写屏程序 采用3SPI模式 18位传输
💻 TXT
字号:
各位先進
小弟剛加入TFT的行列,目前手頭上有個案子採用的就是R61503B這個IC。而且它的接口是採用 3SPI+18bit RGB interface

目前小弟試過所有的方法。都無法點亮跟傳送圖案進去
懇請各位先進指導小弟,或者提供原始代碼給小弟參考好嗎?拜託 拜託
以下是我的原始代碼,若各位先進有空也懇請先進幫忙指導。看看小弟哪個地方錯了,萬分感激 
void Initial_R61503(void)
{
uint8 i;

IOCLR = nRST;
DelayX05(4);//wait 2 sec
IOSET = nRST;


SPI3_C(0x0007);
SPI3_D(0x0000);
SPI3_C(0x0012);
SPI3_D(0x0000);

DelayX05(1);

for(i=0;i<4;i++)
{ 
SPI3_C(0x0000); //reset ac
//SPI3_D(0x0000);
}

SPI3_C(0x00a4);
SPI3_D(0x0001);

DelayX05(1);

SPI3_C(0x0007);
SPI3_D(0x0001);
SPI3_C(0x0018);//power control 5
SPI3_D(0x0001);

SPI3_C(0x0010);//power control 1
SPI3_D(0x14a0); 
SPI3_C(0x0011);//power control 2
SPI3_D(0x0017);
SPI3_C(0x0012);//power control 3
SPI3_D(0x1011);
SPI3_C(0x0013);//power control 4
SPI3_D(0x8d07);
SPI3_C(0x0012);//power control 3
SPI3_D(0x1031);
SPI3_C(0x0007);
SPI3_D(0x0001);
DelayX05(1);

SPI3_C(0x0007);
SPI3_D(0x0021);

DelayX05(1);

SPI3_C(0x0007);//display on
SPI3_D(0x0233);
} 

void SPI3_C(uint16 Comm)
{

SPI3_IF8(0x74); //start byte
SPI3_IF16(Comm);
SPI3_Stop();
}

void SPI3_D(uint16 Data)
{
SPI3_IF8(0x76);
SPI3_IF16(Data);
SPI3_Stop();
}

void SPI3_IF8(uint8 Data)
{
uint8 i; //for conut

IOCLR = nCS;
IOCLR = SCL;
IOCLR = SDI;

ShortDelay(1); 

for (i=0; i<8; i++)
{
if ( Data & 0x80)
IOSET = SDI;
else
IOCLR = SDI;


IOSET = SCL;
ShortDelay(1);
IOCLR = SCL;

Data= Data <<1;
}

ShortDelay(10);//Dumny delay
}
//================================
void SPI3_IF16(uint16 Data)
{
uint8 i,j; //for conut

IOCLR = nCS;
IOCLR = SCL;
ShortDelay(1);
IOCLR = SDI;

for (j=0; j<2; j++)
{
for (i=0; i<8; i++)
{
if ( Data & 0x80)
IOSET = SDI;
else
IOCLR = SDI;

IOSET = SCL;
ShortDelay(1);
IOCLR = SCL;

Data= Data <<1;
}
ShortDelay(10);
Data= Data <<1;
}
}

void SPI3_Stop(void)
{
IOSET = SCL;
IOSET = SDI;
IOSET = nCS;

} 






我想:IOSET是1,IOCLR是0,但是你为什么有这样的语句:
IOSET = SCL;
IOSET = SDI;
......
应该是
SCL = IOSET;
SDI = IOSET;
是不是阿?




for (i=0; i<8; i++)
{
if ( Data & 0x80)
IOSET = SDI;
else
IOCLR = SDI;
////////////////////

Data与1000 0000应该按位与 (bit)(A & B)



串口初始化很重要。 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -