最近經(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);} 字符限制了,貼不了多少,2積分即可下載。。。
標(biāo)簽:
stm32
硬件
spi
驅(qū)動(dòng)
tft
lcd
proteus
上傳時(shí)間:
2022-04-12
上傳用戶: