[入門教程]詳細講解STM32控制LED點陣屏(HUB75接口)
本文適合初級入門的同學,大佬請繞道。講解怎么用stm32驅(qū)動成品LED點陣屏顯示一副七色無灰度的圖片,有灰度的圖片可以入門后繼續(xù)研究。
使用軟硬件:
軟件:Keil5,程序在后面會給出
硬件:STM32F103最小系統(tǒng)、全彩色P4LED點陣屏(HUB75接口,16掃)
說下stm32驅(qū)動LED點陣屏用途:
可以自己做些東西玩,比如日期時鐘、音樂頻譜、一些滾動字幕;
商業(yè)用途,開發(fā)控制器,結(jié)合各種傳感器,LED點陣屏幕顯示數(shù)據(jù);
開始正題。
本文中使用的是STM32F103C8T6最小系統(tǒng),這個估計在看的同學都有了。另外用到主角是LED點陣屏,本文使用的是一張全彩色P4LED點陣屏,接口是HUB75,掃描是1/16掃,這些參數(shù)不懂沒關(guān)系,只要點陣屏買對了不影響學習(后面會有推薦鏈接)。

這種成品的點陣屏是行、列驅(qū)動的方式,行驅(qū)動用38類譯碼器,列驅(qū)動用普通16路恒流驅(qū)動芯片(比如:sm16206s、fm6024、icn2038等等特別多,這類芯片是串行數(shù)據(jù)的)。比如本文用到的P4點陣屏是64*32點陣的,用到4個38譯碼器,R、G、B各4個sm16206s恒流芯片。
這里說下R、G、B。R指的是紅色,G是綠色,B是藍色。全彩色點陣屏是將RGB三種顏色燈封裝在一個燈珠里,給對應的引腳供電即可顯示相應的顏色,具體怎么驅(qū)動我們不需要了解,因為每種顏色有一個恒流芯片,我們控制芯片就好了。R、G同時亮我們就看到黃色;R、B同時亮我們就看到紫色;G、B同時亮我們就看到青色;加上R、G、B三色就是常說的七彩。
說一下HUB75接口,如下圖。A、B、C、D、E是行信號,其中E信號在小于等于16掃時不需要;CLK(有的板也寫作SCLK)是時鐘信號;LE(有的板也寫作LAT)是數(shù)據(jù)鎖存信號);OE是使能信號;R1,G1,B1和R2,G2,B2是兩組數(shù)據(jù)信號;

我們結(jié)合代碼講解一下顯示過程:
下面是LED的顯示函數(shù)。
其中下面這部分是用來選擇行的。
LED_Buffer[LED_Width][LED_Height]這個數(shù)組就是我們要顯示的圖片對應顯存數(shù)組,它與點陣屏上的像素點是一一對應的(數(shù)據(jù)倒著存放是為了運算方便)。
我們用單片機控制點陣屏使用的是行掃描的方式,我們對這種方式并不陌生,學51單片機時控制LED數(shù)碼管顯示也是用的這種方式。先選擇某一行,然后將這一行的顯示數(shù)據(jù)分別發(fā)送給恒流芯片(串行的),接著鎖存、顯示(都是低電平有效)。
通過調(diào)整OE信號低電平持續(xù)時間可以改變點陣屏的亮度。
經(jīng)過以上程序,就可以將取模后的圖片顯示在LED點陣屏上。
總結(jié):
本文是入門教程,但仍然基于在看同學會stm32單片機配置和使用,會C語言。
完整程序免費下載在Q群676606232群文件中,有不解的地方也歡迎加up的Q21182889交流。
程序適用的LED點陣屏必須是普通恒流驅(qū)動芯片,38類譯碼器,1/16掃描,HUB75接口的屏幕,請同學們購買的時候問清楚。也可使用我推薦這款P4點陣屏,只需要38元,但買時仍然要向賣家問清楚是否為普通恒流驅(qū)動芯片的:
79¥ CZ3457 Frjk2zar1zK¥ https://m.tb.cn/h.UdDtf5b? 全彩P4點陣屏【在售%…*價】38.00 圓