適用spi_lcd出錯(cuò),不亮

硬件:ch32v307vct6,lcd某淘寶買的。

連線如圖說明:使用spi2,然后rst連接到PB2,LED(背光)連接到PB1,RST連接到PB3,屏幕的cs連接到spi2的NSS引腳。image.png這里是spi2和這些引腳的初始化,然后

image.png這里是肯定例程給的宏定義,我都給修改為了設(shè)置相應(yīng)的GPIO,其中RES大概率是RST(我是這么理解的),BLK我就理解為背光的引腳了,這里還是給出寫函數(shù)定義(我應(yīng)該不會(huì)看BLK和RES的,只能看寫的),image.png,。

現(xiàn)在的問題是,背光能量,但是lcd沒有反應(yīng)。

我嘗試調(diào)試,發(fā)現(xiàn)幾個(gè)問題

  1. image.png重復(fù)進(jìn)入SPI2——I2C——senddate這個(gè)函數(shù),我沒有設(shè)置斷點(diǎn)。

  2. SPI2-DAte寄存器值沒有變化,但是重復(fù)進(jìn)入上個(gè)函數(shù),變量窗口種的date以及spi->date會(huì)變化。

  3. 屏幕沒有反應(yīng)。NQKYZ_]$}2RK~KE0PO4AL{W.pngQ@Z}DNFZZ2K2`[LS1QK}9B2.png YM`[PB[F`BK$_CLS2KLS72N.png

    V@0[$M)VUKE0HZ4%W7DYEMT.png

    上圖有我說的各種圖以及spi2的狀體寄存器的值,其中TXE是1應(yīng)該代表spi啟動(dòng)了。

    _-898648449__5078ed61710b36b0cef80b5549bb2569_477283371_IMG20240512110326_0_xg_0.JPG_558883805__c41f37529e63c7109181125480a0bf0e_560400261_IMG20240512110353_0_xg_0.JPG還請(qǐng)大佬指點(diǎn)一點(diǎn),教俺接下如何檢測,我現(xiàn)在沒有頭緒,無法開始下一步,如需要其他信息,我可以提供,因我不是特別懂這個(gè)lcd。

非常希望大佬能指點(diǎn)一二,俺實(shí)在是不知道了。


給你一段我用的發(fā)送代碼

void SPI_SendData(uint8_t byte)

{

? ? SPI_I2S_SendData(SPI1,? byte);

? ? while (SPI_I2S_GetFlagStatus( SPI1, SPI_I2S_FLAG_BSY ) != RESET);

}


特別注意SPI_I2S_FLAG_BSY狀態(tài)和SPI_I2S_FLAG_TXE狀態(tài)的區(qū)別,

如果SPI_I2S_FLAG_BSY為0了,才是SPI這個(gè)字節(jié)真正發(fā)送完畢,

僅僅是SPI_I2S_FLAG_TXE為1,只是代表發(fā)送緩沖區(qū)空了,而實(shí)際的發(fā)送動(dòng)作還在進(jìn)行中,

如果這時(shí)認(rèn)為發(fā)送結(jié)束,把CS拉高了,實(shí)際上僅僅發(fā)送了字節(jié)的前幾位,所以LCD不會(huì)亮。

我踩過這個(gè)坑,希望能幫到你


好的好的,我還忘記錯(cuò)改了一個(gè)。然后我找您所說的,但是現(xiàn)在會(huì)卡在第二個(gè)循環(huán)e1bdbe111379353fb32b78a7d026413.png。第一個(gè)循環(huán)是不會(huì)卡,第二個(gè)循環(huán)返回的值一直是REST。



送數(shù)據(jù)的時(shí)候因?yàn)槭荳rite的命令,從機(jī)是不會(huì)返回正確數(shù)據(jù)的。如果你的LCD驅(qū)動(dòng)芯片確定是ILI9488的話可以把需求發(fā)我郵箱,我給你一個(gè)參考例程,我的郵箱:ccs@wch.cn


一般SPI接口驅(qū)動(dòng)LCD時(shí),接口不支持read,所以沒必要再等待讀狀態(tài)讀數(shù)據(jù),永遠(yuǎn)也等不來的。直接去掉吧。

把前面SPI的模式初始化為SPI_Direction_1Line_Tx,SPI分頻數(shù)SPI_BaudRatePrescaler值大一些,LCD的SPI接口速度不怕慢,怕快,太快了容易不穩(wěn)定


這個(gè)型號(hào)是ili9341的,我突然發(fā)現(xiàn)沁恒那個(gè)spi,有個(gè)spi_lcd的例程,里面兼容9341的,但是沒用。image.png



這里的也是使用spi2,其他的如DC我也改成自己的了,我打算讀取發(fā)送的寄存器和設(shè)備的id,看看能不能正不正確,返回設(shè)備id的代碼是這樣子寫的,我讓GPT幫我寫的,不知道對(duì)不對(duì)image.png,但,我發(fā)出來顯然是錯(cuò)了


image.png指令應(yīng)該沒錯(cuò)把,讀取顯示狀態(tài),但是我不知道如何寫


搞錯(cuò)了,讀取id是D3,這個(gè)是讀取設(shè)備狀態(tài)


我也是同樣的問題,我原程序是用spi1,我現(xiàn)在改用SPI2來通信,然后我現(xiàn)在用示波器測量每一個(gè)端口信號(hào)都和spi1通信對(duì)應(yīng)端口信號(hào)相同,CS和CLK也能夠?qū)?yīng)得上。但是現(xiàn)在就是白屏,不能夠顯示其他東西



只有登錄才能回復(fù),可以選擇微信賬號(hào)登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频