標(biāo)題: STM32硬件SPI驅(qū)動(dòng)ST7735R TFTLCD Proteus仿真實(shí)現(xiàn) [打印本頁(yè)]
作者: 回來(lái)哥啦 時(shí)間: 2020-9-23 12:06
標(biāo)題: STM32硬件SPI驅(qū)動(dòng)ST7735R TFTLCD Proteus仿真實(shí)現(xiàn)
最近經(jīng)理通知要做項(xiàng)目了,讓我選型一個(gè)LCD開(kāi)始試著做下。這是我用仿真實(shí)現(xiàn)的一個(gè)smt32的硬件SPI1來(lái)驅(qū)動(dòng)的ST7735R,難度挺小的,因?yàn)榇蟛糠值拇aLCD的廠商已經(jīng)給我們提供了,我們主要修改成硬件SPI來(lái)驅(qū)動(dòng)就好了。
此次仿真上面有2個(gè)問(wèn)題,不知道是代碼的問(wèn)題還是仿真圖上的問(wèn)題。第一個(gè)問(wèn)題是仿真運(yùn)行時(shí)有時(shí)會(huì)出通信數(shù)據(jù)傳輸問(wèn)題,導(dǎo)致指令越界報(bào)警,這個(gè)可能是SPI不穩(wěn)定導(dǎo)致的;第二個(gè)問(wèn)題是在改用SPI2或者SPI3來(lái)驅(qū)動(dòng)沒(méi)有任何反應(yīng),猜測(cè)是代碼時(shí)鐘沒(méi)開(kāi)對(duì)或者仿真圖上面還要加上具體晶振。
代碼工程和仿真工程都已壓縮打包,可放心下載。。。
先貼上仿真實(shí)現(xiàn)圖:
再貼上部分代碼:
/**ST7735驅(qū)動(dòng)**/
#include "ST7735.h"
#include "usart.h"
u16 BACK_COLOR, POINT_COLOR; //背景色,畫(huà)筆色
void WriteCommand_7735(u8 CmdData) //寫(xiě)指令
{
SPI_LCD_CS_LOW; //片選
SPI_LCD_COMMAND_W;//寫(xiě)指令
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) //寫(xiě)8位數(shù)據(jù)
{
SPI_LCD_CS_LOW; //片選
SPI_LCD_DATA_W;//寫(xiě)數(shù)據(jù)
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) //寫(xiě)16位數(shù)據(jù)
{
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; //打開(kāi)片選使能
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個(gè)指令對(duì)ST7735R好像不起作用,仿真會(huì)報(bào)警告,應(yīng)該是沒(méi)有這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);
}
代碼就貼這么多吧,具體的下載來(lái)看吧,網(wǎng)上基于這款LCD的項(xiàng)目挺少的。特別注意點(diǎn)是設(shè)置SPI的CS腳,費(fèi)了我一天時(shí)間在那測(cè)試,一直沒(méi)找到錯(cuò)誤點(diǎn),當(dāng)時(shí)都快哭了,終于還是做出來(lái)了,希望以后的同學(xué)仿真少走彎路吧。CS腳(片選)一定要設(shè)定成復(fù)用推挽輸出,并且不要設(shè)置到SPI的NSS腳上,即PA4,接上反正是運(yùn)行不起來(lái)。。。
-
-
STM32驅(qū)動(dòng)TFTLCD仿真實(shí)驗(yàn).7z
2020-9-23 13:13 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
234.12 KB, 下載次數(shù): 424, 下載積分: 黑幣 -5
STM32硬件SPI驅(qū)動(dòng)ST7735
作者: 長(zhǎng)風(fēng)007 時(shí)間: 2020-9-24 15:30
這個(gè)是液晶片嗎?還是模塊來(lái)的?
作者: 回來(lái)哥啦 時(shí)間: 2020-9-27 14:26
沒(méi)理解你的意思,這個(gè)彩色的液晶
作者: hzd530 時(shí)間: 2020-9-27 20:35
這個(gè)驅(qū)動(dòng)ST7735不錯(cuò),可以用的
作者: wwrx 時(shí)間: 2020-12-3 19:27
能幫助指導(dǎo)一下嗎大佬
作者: cooc22 時(shí)間: 2024-3-12 10:23
why 爲(wèi)何沒(méi)有51+ST7735R的proteus呀?
作者: lsb_lunch 時(shí)間: 2024-4-15 12:08
為什么我無(wú)法再現(xiàn)你的結(jié)果呀,我直接下你的壓縮包了的
作者: heicad 時(shí)間: 2024-4-15 20:02
我用的Proteus8.13版本可以,,你是不是沒(méi)有重新選擇你的hex文件所在路徑?
-
51hei.png
(28.95 KB, 下載次數(shù): 55)
下載附件
2024-4-15 20:02 上傳
作者: jue6897 時(shí)間: 2024-5-15 10:48
為什么我8.16版本打開(kāi)一防真就自動(dòng)關(guān)了
作者: @123ccc 時(shí)間: 2024-5-29 22:15
直接下載打開(kāi)運(yùn)行為什么是黑屏
-
無(wú)標(biāo)題.png
(39.45 KB, 下載次數(shù): 32)
下載附件
2024-5-29 22:15 上傳
作者: @123ccc 時(shí)間: 2024-5-30 15:49
低版本打不開(kāi)高版本的仿真
作者: 2276924877 時(shí)間: 2024-8-2 15:58
下載了,運(yùn)行沒(méi)反應(yīng)是咋回事,protues為8.15
作者: kamiyali 時(shí)間: 2024-9-26 11:15
我的跟你一樣,也是黑屏,你的解決了嗎??
作者: hhhei1 時(shí)間: 2024-12-18 22:18
希望有用呀,煩死了這個(gè)ST7735R網(wǎng)上資料好少
作者: 蘇玖Koo 時(shí)間: 2025-4-9 20:46
我也是黑屏
作者: taotie2024 時(shí)間: 2025-6-26 12:48
黑屏,用不了
歡迎光臨 (http://m.zg4o1577.cn/bbs/) |
Powered by Discuz! X3.1 |
主站蜘蛛池模板:
黄色小视频在线播放
|
天天摸天天干
|
综合久久综合
|
亚洲成人精品在线
|
中文字幕自拍偷拍
|
三上悠亚一区二区
|
亚洲综合网站
|
欧美成人免费
|
午夜无遮挡
|
日韩成人精品一区二区
|
亚洲成人二区
|
青青av|
羞羞的视频网站
|
午夜精品视频
|
成人在线观看网址
|
欧美在线视频观看
|
久久精品视频一区二区
|
成人欧美一区二区三区黑人孕妇
|
毛茸茸free性熟hd
|
国产精品久久久久久久久借妻
|
国产一区二区三区视频在线
|
91色交视频
|
久操视频在线
|
亚洲日本一区二区
|
国产精品一区二区三区免费
|
中文在线观看免费网站
|
老司机午夜影院
|
国产在线黄色
|
蜜桃成人在线
|
成人一区二区视频
|
福利片在线
|
91精品又粗又猛又爽
|
日韩综合在线
|
日韩一级黄色片
|
性色av蜜臀av浪潮av老女人
|
日本理论片午伦夜理片在线观看
|
精品国产91乱码一区二区三区
|
免费一级a毛片
|
国产伊人网
|
91看片看淫黄大片
|
99色综合|