找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1761|回復(fù): 5
打印 上一主題 下一主題
收起左側(cè)

STC8H8K64U硬件SPI無法點亮ST7789屏幕

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:190152 發(fā)表于 2024-11-19 16:14 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
100黑幣
求助研究了幾天了實在是無法點亮屏幕

STC8硬件spi驅(qū)動ST7789屏幕.zip

183.16 KB, 下載次數(shù): 0

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:190152 發(fā)表于 2024-11-19 17:27 | 只看該作者
已經(jīng)解決了
回復(fù)

使用道具 舉報

板凳
ID:961114 發(fā)表于 2024-11-20 14:16 | 只看該作者
DMA-SPI-MOSI 輸出直接驅(qū)動 WS2812 三基色彩燈@8H/32G系列, CPU休息
SPI方案, 不加外部反相器:
只用到MOSI驅(qū)動WS2812,但由于SPI的3個信號是捆綁在一起的
===MISO不能做它用
本例使用P1.3-MOSI輸出驅(qū)動信號,用戶可以切換到別的腳。
===將 MISO 不做其他用途;
===將 MISO管腳 先設(shè)置為對外輸出0;
===MOSI 發(fā)送完成后,對外停止時輸出的是 MISO 讀到的狀態(tài), 0 !
===SCLK如要做其他用途,可設(shè)置為高阻輸入,作為輸入使用
        這 SPI 留了這么個絕活 支持 WS2812B �。�!

本例驅(qū)動60個燈,接成環(huán)狀。SPI發(fā)送720字節(jié),DMA分3塊發(fā)送,一塊240字節(jié),
SPI-DMA自動傳送不占CPU時間,SPI-DMA 總耗時2.08mS,
===但由于使用DMA中斷處理,所以發(fā)送占CPU時間只有幾uS。
===實際幾乎 不占 CPU 時間

每個燈3個字節(jié),分別對應(yīng)綠、紅、藍(lán)色,MSB先發(fā).
800KHz碼率, 數(shù)據(jù)0(1/4占空比): H=0.3125us  L=0.9375us, 數(shù)據(jù)1(3/4占空比): H=0.9375us  L=0.3125us, RESET>=50us.
高電平時間要精確控制在要求的范圍內(nèi), 低電平時間不需要精確控制, 大于要求的最小值并小于RES的50us即可.

WS2812S的標(biāo)準(zhǔn)時序如下:
TH+TL = 1.25us±150ns, RES>50us
T0H = 0.25us±150ns = 0.10us - 0.40us
T0L = 1.00us±150ns = 0.85us - 1.15us
T1H = 1.00us±150ns = 0.85us - 1.15us
T1L = 0.25us±150ns = 0.10us - 0.40us
兩個位數(shù)據(jù)之間的間隔要小于RES的50us.

SPI方案:
只用到MOSI驅(qū)動WS2812,但由于SPI的3個信號是捆綁在一起的,MISO 不能做它用。本例使用P1.3-MOSI輸出驅(qū)動信號,用戶可以切換到別的腳。
===將 MISO 不做其他用途;
===將 MISO管腳 先設(shè)置為對外輸出0;
===MOSI 發(fā)送完成后,對外停止時輸出的是 MISO 讀到的狀態(tài), 0 ,這 STC-R&D 留了這么個絕活支持 WS2812B !��!

用SPI傳輸, 速度3.0~3.5MHz,以3.2MHz為最佳, MSB先發(fā), 每個字節(jié)高4位和低4位分別對應(yīng)一個WS2812位數(shù)據(jù), 1000為數(shù)據(jù)0, 1110為數(shù)據(jù)1, 有DMA就使用DMA傳輸, 沒有DMA就直接SPI發(fā)送.
MOSI數(shù)據(jù)位       D7 D6 D5 D4    D3 D2 D1 D0
MOSI數(shù)據(jù)          1    0   0   0      1   1   1   0
                     WS2812數(shù)據(jù)0    WS2812數(shù)據(jù)1
SPI數(shù)據(jù)高半字節(jié)對應(yīng)的WS2812數(shù)據(jù)0-->0x80, 數(shù)據(jù)1-->0xE0,
SPI數(shù)據(jù)低半字節(jié)對應(yīng)的WS2812數(shù)據(jù)0-->0x08, 數(shù)據(jù)1-->0x0E,
主頻25.6MHz, SPI分頻8 = 3.2MHz。最佳。本例使用。
主頻24.0MHz, SPI分頻8 = 3.0MHz。本例可用。
主頻12.8MHz, SPI分頻4 = 3.2MHz。最佳。用戶要改下主頻定義和SPI為4分頻。
主頻12.0MHz, SPI分頻4 = 3.0MHz。用戶要改下主頻定義,SPI為4分頻。

開源程序  
下面為跑馬燈效果視頻:


回復(fù)

使用道具 舉報

地板
ID:44037 發(fā)表于 2024-11-20 15:34 | 只看該作者
怎么解決的 分享一下
回復(fù)

使用道具 舉報

5#
ID:292903 發(fā)表于 2025-4-1 23:14 | 只看該作者

樓主怎么解決的呀?你上一個帖子我有回復(fù)
求幫忙,。。我也在整硬件SPI驅(qū)動7789
回復(fù)

使用道具 舉報

6#
ID:1110477 發(fā)表于 2025-4-4 04:51 | 只看該作者
STC莊偉 發(fā)表于 2024-11-20 14:16
DMA-SPI-MOSI 輸出直接驅(qū)動 WS2812 三基色彩燈@8H/32G系列, CPU休息
SPI方案, 不加外部反相器:
只用到MOS ...

60個燈,是要做表盤
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表