欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
STM32F103RCT6串行控制LCD12864,一直不能點亮屏幕是怎么回事呀
[打印本頁]
作者:
Kency愛吃冰激凌
時間:
2019-6-3 13:13
標題:
STM32F103RCT6串行控制LCD12864,一直不能點亮屏幕是怎么回事呀
仿照并行的參考程序該成了串行,也參考了論壇里面各種大神的程序。可是我的LCD一直沒有被點亮,請問有可能是什么原因造成的呢,要怎么檢查一下呀?
編了一個電腦通過串口發送數據的程序做通信檢測,串口調試助手一直能看到數據接收,然后用示波器測量LCD的RE、RW、E都能測到波形,屏幕就是不亮
作者:
Kency愛吃冰激凌
時間:
2019-6-4 14:07
現在終于點亮可以顯示了,但是一堆亂碼,都是痧痧。。
作者:
jasone
時間:
2019-6-4 15:45
沒配置好
作者:
Kency愛吃冰激凌
時間:
2019-6-6 13:20
jasone 發表于 2019-6-4 15:45
沒配置好
請問具體是哪里呀,我拿51單片機并行通信改的stm32串行通信,應該從哪里著手檢查錯誤
作者:
Kency愛吃冰激凌
時間:
2019-6-6 13:53
void SendByte(u8 Dbyte)
{
u16 i;
for(i=0;i<8;i++)
{
LCD_SCLK_1;
if((Dbyte<<i)&0x80)
LCD_SID_1;
else
LCD_SID_0;
Delay5Ms();
LCD_SCLK_0;
Delay5Ms();
}
}
u8 ReadDataLCD(void)
{
u8 i,temp1=0,temp2=0;
LCD_CS_1;
Delay5Ms();
for(i=0;i<8;i++)
{
temp1=temp1<<1;
LCD_SCLK_0;
Delay5Ms();
Delay5Ms();
Delay5Ms();
LCD_SCLK_1;
Delay5Ms();
Delay5Ms();
Delay5Ms();
LCD_SCLK_0;
Delay5Ms();
Delay5Ms();
Delay5Ms();
if(GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_8))
temp1++;
}
for(i=0;i<8;i++)
{
temp2=temp2<<1;
LCD_SCLK_0;
Delay5Ms();
Delay5Ms();
Delay5Ms();
LCD_SCLK_1;
Delay5Ms();
Delay5Ms();
Delay5Ms();
LCD_SCLK_0;
Delay5Ms();
Delay5Ms();
Delay5Ms();
if(GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_8))
temp2++;
}
LCD_CS_0;
return ((0xf0&temp1)+(0x0f&temp2));//
}
void CheckBusy( void ) //
{
do
{
LCD_CS_1;//RS = 1;
Delay5Ms();
SendByte(0xfc); //
}
while((ReadDataLCD()&0x80)==0x80);
LCD_CS_0;//RS = 1;
Delay5Ms();
}
void WriteCommandLCD(u8 Cbyte ,u8 BuysC)
{
if(BuysC)
CheckBusy();
LCD_CS_1;//RS = 1;
Delay5Ms();
SendByte(0xf8); //11111,RW(0),RS(0),0;
SendByte(0xf0&Cbyte); //DDDD0000
SendByte((0xf0&Cbyte)<<4); //0000DDDD
LCD_CS_0;//RS = 0;
Delay5Ms();
}
void WriteDataLCD(u8 Dbyte )
{
CheckBusy();
LCD_CS_1;//RS = 1;
Delay5Ms();
SendByte(0xfa); //11111,RW(0),RS(1),0;
SendByte(0xf0&Dbyte); //
SendByte((0xf0&Dbyte)<<4);
LCD_CS_0;//RS = 0;
Delay5Ms();
}
void LCDInit(void)
{
WriteCommandLCD(0x30,1);
WriteCommandLCD(0x01,1);
WriteCommandLCD(0x06,1);
WriteCommandLCD(0x0C,1);
WriteCommandLCD(0x02,1);
WriteCommandLCD(0x80,1);
}
void LCDClear(void)
{
u8 i;
WriteCommandLCD(0x01,1);
WriteCommandLCD(0x34,1);
WriteCommandLCD(0x30,1);
WriteCommandLCD(0x80,1);
for(i=0;i<64;i++)
{
WriteCommandLCD(0x20,1);
}
}
void LCDFlash(void)
{
WriteCommandLCD(0x08,1);
Delay400Ms();
WriteCommandLCD(0x0c,1);
Delay400Ms();
WriteCommandLCD(0x08,1);
Delay400Ms();
WriteCommandLCD(0x0c,1);
Delay400Ms();
WriteCommandLCD(0x08,1);
Delay400Ms();
}
void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData)
{
if(Y<1)
Y=1;
if(Y>4)
Y=4;
X &= 0x0F;
switch(Y)
{
case 1:X|=0X80;break;
case 2:X|=0X90;break;
case 3:X|=0X88;break;
case 4:X|=0X98;break;
}
WriteCommandLCD(X, 0);
WriteDataLCD(DData);
}
void DisplayListChar(unsigned char X, unsigned char Y, unsigned char *DData)
{
unsigned char ListLength;
DisplayOneChar( X, Y, *DData);
for(ListLength=0;DData[ListLength]!='\0';ListLength++)
{
WriteDataLCD(DData[ListLength] );
}
}
void DisplayImage (const u8 *DData)
{
unsigned char x,y,i;
unsigned int tmp=0;
for(i=0;i<9;)
{
for(x=0;x<32;x++)
{ //32DD
WriteCommandLCD(0x34,1);
WriteCommandLCD((0x80+x),1);
WriteCommandLCD((0x80+i),1);
WriteCommandLCD(0x30,1);
for(y=0;y<16;y++)
WriteDataLCD(DData[tmp+y]);
tmp+=16;
}
i+=8;
}
WriteCommandLCD(0x36,1);
WriteCommandLCD(0x30,1);
}
void Delay5Ms(void)
{
unsigned int TempCyc = 50;
while(TempCyc--);
}
//400ms
void Delay400Ms(void)
{
unsigned char TempCycA = 5;
unsigned int TempCycB;
while(TempCycA--)
{
TempCycB=7269;
while(TempCycB--);
};
}
作者:
來51學習
時間:
2019-6-6 14:59
你好!并行和串行控制時序要求不一樣,還是找一個 51 的串行程序來改吧
作者:
Kency愛吃冰激凌
時間:
2019-6-10 09:08
來51學習 發表于 2019-6-6 14:59
你好!并行和串行控制時序要求不一樣,還是找一個 51 的串行程序來改吧
我是需要拿STM32做串行控制,核心部分的代碼已經貼出,但是功能一直無法實現
作者:
Kirak1997
時間:
2019-6-10 10:20
單獨屏幕接個電源是不是屏幕壞了
作者:
_4061N_
時間:
2019-6-14 14:48
如果屏幕不亮的話,可以嘗試這樣做
1.RS/CS片選可以直接接VCC以方便測試
2.12864初始化以后要加(例如100毫秒)延時,每發送完一個數據或指令后要加(例如5毫秒)延時
3.注意,程序有一個錯誤:12864是在SCLK上升沿輸入數據,而不是下降沿。
void SendByte(u8 Dbyte)
{
u16 i;
for(i=0;i<8;i++)
{
if((Dbyte<<i)&0x80) LCD_SID_1;
else LCD_SID_0;
LCD_SCLK_0;
LCD_SCLK_1;
}
}
復制代碼
作者:
1642172446
時間:
2020-6-11 16:42
我也是一樣不知道怎么回事!求幫助
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1