久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: STM32硬件SPI驅動ST7735R TFTLCD Proteus仿真實現 [打印本頁]

作者: 回來哥啦    時間: 2020-9-23 12:06
標題: STM32硬件SPI驅動ST7735R TFTLCD Proteus仿真實現
       最近經理通知要做項目了,讓我選型一個LCD開始試著做下。這是我用仿真實現的一個smt32的硬件SPI1來驅動的ST7735R,難度挺小的,因為大部分的代碼LCD的廠商已經給我們提供了,我們主要修改成硬件SPI來驅動就好了。
        此次仿真上面有2個問題,不知道是代碼的問題還是仿真圖上的問題。第一個問題是仿真運行時有時會出通信數據傳輸問題,導致指令越界報警,這個可能是SPI不穩定導致的;第二個問題是在改用SPI2或者SPI3來驅動沒有任何反應,猜測是代碼時鐘沒開對或者仿真圖上面還要加上具體晶振。
        代碼工程和仿真工程都已壓縮打包,可放心下載。。。

先貼上仿真實現圖:
   

再貼上部分代碼:


/**ST7735驅動**/
#include "ST7735.h"
#include "usart.h"
u16 BACK_COLOR, POINT_COLOR;   //背景色,畫筆色  

void WriteCommand_7735(u8 CmdData)  //寫指令
{
SPI_LCD_CS_LOW; //片選
SPI_LCD_COMMAND_W;//寫指令
SPI_I2S_SendData(LCD_SPIx,CmdData);
while (SPI_I2S_GetFlagStatus(LCD_SPIx, SPI_I2S_FLAG_TXE) == RESET){}
SPI_LCD_CS_HIGH;
}

void WriteDate_7735(u8 Data)  //寫8位數據
{
SPI_LCD_CS_LOW; //片選
SPI_LCD_DATA_W;//寫數據
SPI_I2S_SendData(LCD_SPIx,Data);
while(SPI_I2S_GetFlagStatus(LCD_SPIx, SPI_I2S_FLAG_TXE) == RESET){}
  SPI_LCD_CS_HIGH;
}

void WriteDate16(int data) //寫16位數據
{
WriteDate_7735(data>>8);
WriteDate_7735(data);
}

void LCD_Init(void)
{
        
        LCD_RES_HIGH;
  delay_ms(5);        
        LCD_RES_LOW;
        delay_ms(5);
        LCD_RES_HIGH;
        SPI_LCD_CS_HIGH;
        delay_ms(5);
        SPI_LCD_CS_LOW;  //打開片選使能

                WriteCommand_7735(0x11); //Sleep out
        delay_ms(120); //Delay 120ms
        //------------------------------------ST7735S Frame Rate-----------------------------------------//
        WriteCommand_7735(0xB1);
        WriteDate_7735(0x05);


WriteCommand_7735(0x11);//Sleep exit
delay_ms (120);
//ST7735R Frame Rate
WriteCommand_7735(0xB1);
WriteDate_7735(0x01);

WriteDate_7735(0x2C); WriteDate_7735(0x2D);
WriteCommand_7735(0xB2);
WriteDate_7735(0x01); WriteDate_7735(0x2C); WriteDate_7735(0x2D);
WriteCommand_7735(0xB3);
WriteDate_7735(0x01); WriteDate_7735(0x2C); WriteDate_7735(0x2D);
WriteDate_7735(0x01); WriteDate_7735(0x2C); WriteDate_7735(0x2D);

WriteCommand_7735(0xB4); //Column inversion
WriteDate_7735(0x07);
//ST7735R Power Sequence
WriteCommand_7735(0xC0);
WriteDate_7735(0xA2); WriteDate_7735(0x02); WriteDate_7735(0x84);
WriteCommand_7735(0xC1); WriteDate_7735(0xC5);
WriteCommand_7735(0xC2);
WriteDate_7735(0x0A); WriteDate_7735(0x00);
WriteCommand_7735(0xC3);
WriteDate_7735(0x8A); WriteDate_7735(0x2A);
WriteCommand_7735(0xC4);
WriteDate_7735(0x8A); WriteDate_7735(0xEE);
WriteCommand_7735(0xC5); //VCOM
WriteDate_7735(0x0E);
WriteCommand_7735(0x36); //MX, MY, RGB mode
WriteDate_7735(0xC8);

//ST7735R Gamma Sequence
WriteCommand_7735(0xe0);
WriteDate_7735(0x0f); WriteDate_7735(0x1a);
WriteDate_7735(0x0f); WriteDate_7735(0x18);
WriteDate_7735(0x2f); WriteDate_7735(0x28);
WriteDate_7735(0x20); WriteDate_7735(0x22);
WriteDate_7735(0x1f); WriteDate_7735(0x1b);
WriteDate_7735(0x23); WriteDate_7735(0x37); WriteDate_7735(0x00);

WriteDate_7735(0x07);
WriteDate_7735(0x02); WriteDate_7735(0x10);
WriteCommand_7735(0xe1);
WriteDate_7735(0x0f); WriteDate_7735(0x1b);
WriteDate_7735(0x0f); WriteDate_7735(0x17);
WriteDate_7735(0x33); WriteDate_7735(0x2c);
WriteDate_7735(0x29); WriteDate_7735(0x2e);
WriteDate_7735(0x30); WriteDate_7735(0x30);
WriteDate_7735(0x39); WriteDate_7735(0x3f);
WriteDate_7735(0x00); WriteDate_7735(0x07);
WriteDate_7735(0x03); WriteDate_7735(0x10);  

WriteCommand_7735(0x2a);
WriteDate_7735(0x00);WriteDate_7735(0x00);
WriteDate_7735(0x00);WriteDate_7735(0x7f);
WriteCommand_7735(0x2b);
WriteDate_7735(0x00);WriteDate_7735(0x00);
WriteDate_7735(0x00);WriteDate_7735(0x7f);

/*下面這2個指令對ST7735R好像不起作用,仿真會報警告,應該是沒有這2條指令*/
//WriteCommand_7735(0xF0); //Enable test command  
//WriteDate_7735(0x01);
//WriteCommand_7735(0xF6); //Disable ram power save mode
//WriteDate_7735(0x00);
WriteCommand_7735(0x3A); //65k mode
WriteDate_7735(0x05);
WriteCommand_7735(0x29); //Display on
WriteCommand_7735(0x2C);
}                                    

   代碼就貼這么多吧,具體的下載來看吧,網上基于這款LCD的項目挺少的。特別注意點是設置SPI的CS腳,費了我一天時間在那測試,一直沒找到錯誤點,當時都快哭了,終于還是做出來了,希望以后的同學仿真少走彎路吧。CS腳(片選)一定要設定成復用推挽輸出,并且不要設置到SPI的NSS腳上,即PA4,接上反正是運行不起來。。。

STM32驅動TFTLCD仿真實驗.7z

234.12 KB, 下載次數: 424, 下載積分: 黑幣 -5

STM32硬件SPI驅動ST7735


作者: 長風007    時間: 2020-9-24 15:30
這個是液晶片嗎?還是模塊來的?
作者: 回來哥啦    時間: 2020-9-27 14:26
長風007 發表于 2020-9-24 15:30
這個是液晶片嗎?還是模塊來的?

沒理解你的意思,這個彩色的液晶
作者: hzd530    時間: 2020-9-27 20:35
這個驅動ST7735不錯,可以用的
作者: wwrx    時間: 2020-12-3 19:27
能幫助指導一下嗎大佬
作者: cooc22    時間: 2024-3-12 10:23
why 爲何沒有51+ST7735R的proteus呀?
作者: lsb_lunch    時間: 2024-4-15 12:08
為什么我無法再現你的結果呀,我直接下你的壓縮包了的

作者: heicad    時間: 2024-4-15 20:02
lsb_lunch 發表于 2024-4-15 12:08
為什么我無法再現你的結果呀,我直接下你的壓縮包了的

我用的Proteus8.13版本可以,,你是不是沒有重新選擇你的hex文件所在路徑?

51hei.png (28.95 KB, 下載次數: 55)

51hei.png

作者: jue6897    時間: 2024-5-15 10:48
為什么我8.16版本打開一防真就自動關了
作者: @123ccc    時間: 2024-5-29 22:15
直接下載打開運行為什么是黑屏

無標題.png (39.45 KB, 下載次數: 32)

無標題.png

作者: @123ccc    時間: 2024-5-30 15:49
jue6897 發表于 2024-5-15 10:48
為什么我8.16版本打開一防真就自動關了

低版本打不開高版本的仿真

作者: 2276924877    時間: 2024-8-2 15:58
下載了,運行沒反應是咋回事,protues為8.15
作者: kamiyali    時間: 2024-9-26 11:15
@123ccc 發表于 2024-5-29 22:15
直接下載打開運行為什么是黑屏

我的跟你一樣,也是黑屏,你的解決了嗎??
作者: hhhei1    時間: 2024-12-18 22:18
希望有用呀,煩死了這個ST7735R網上資料好少
作者: 蘇玖Koo    時間: 2025-4-9 20:46
kamiyali 發表于 2024-9-26 11:15
我的跟你一樣,也是黑屏,你的解決了嗎??

我也是黑屏




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 成人性生交大片 | 午夜影院在线观看免费 | 中文字幕欧美一区二区 | av一级毛片 | 涩涩视频在线播放 | 国产精品精品视频一区二区三区 | 久久久久久综合 | 亚洲色欲色欲www | 久草久草久草 | xxx.在线观看 | 亚洲欧洲在线视频 | 亚洲一区成人 | a看片| 国产精品99久久久久久宅男 | 天堂一区二区三区四区 | 美女黄视频网站 | 一区二区三区视频 | 亚洲高清在线视频 | 99久久亚洲 | 亚洲激情网站 | 三级在线视频 | 国产精品美女久久久久久不卡 | 国产一区二区三区不卡av | 久久国产精品久久久久久 | 欧美性生交大片免费 | 日韩精品一区二区三区在线观看 | 日韩在线一区二区三区 | 日韩欧美在线视频 | 欧美一区成人 | 日韩在线精品强乱中文字幕 | 精品一区二区久久久久久久网站 | a国产一区二区免费入口 | 91精品久久久久久久久中文字幕 | 日产久久 | 欧美精品区| 久久久xxx| 不卡av在线| 亚洲国产精品精华素 | 一区不卡在线观看 | 色综合久久天天综合网 | h视频在线播放 |