国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

[入門教程]詳細講解STM32控制LED點陣屏(HUB75接口)

這篇具有很好參考價值的文章主要介紹了[入門教程]詳細講解STM32控制LED點陣屏(HUB75接口)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

本文適合初級入門的同學(xué),大佬請繞道。講解怎么用stm32驅(qū)動成品LED點陣屏顯示一副七色無灰度的圖片,有灰度的圖片可以入門后繼續(xù)研究。

?

使用軟硬件:

軟件:Keil5,程序在后面會給出

硬件:STM32F103最小系統(tǒng)、全彩色P4LED點陣屏(HUB75接口,16掃)

說下stm32驅(qū)動LED點陣屏用途:

可以自己做些東西玩,比如日期時鐘、音樂頻譜、一些滾動字幕;

商業(yè)用途,開發(fā)控制器,結(jié)合各種傳感器,LED點陣屏幕顯示數(shù)據(jù);

開始正題。

本文中使用的是STM32F103C8T6最小系統(tǒng),這個估計在看的同學(xué)都有了。另外用到主角是LED點陣屏,本文使用的是一張全彩色P4LED點陣屏,接口是HUB75,掃描是1/16掃,這些參數(shù)不懂沒關(guān)系,只要點陣屏買對了不影響學(xué)習(xí)。

hub75控制程序,stm32,單片機,arm

這種成品的點陣屏是行、列驅(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三種顏色燈封裝在一個燈珠里,給對應(yīng)的引腳供電即可顯示相應(yīng)的顏色,具體怎么驅(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ù)信號;

hub75控制程序,stm32,單片機,arm

我們結(jié)合代碼講解一下顯示過程:

下面是LED的顯示函數(shù)。

//打點函數(shù)
void LED_Display(void)
{
	static uint8_t i,j;

	LED_D(j&0x8);
	LED_C(j&0x4);
	LED_B(j&0x2);
	LED_A(j&0x1);
	for(i=0;i<LED_Width;i++)
	{
		//上半部16行
		LED_R1(LED_Buffer[i][(LED_Height-1)-j]&0x1);
		LED_G1(LED_Buffer[i][(LED_Height-1)-j]&0x2);
		LED_B1(LED_Buffer[i][(LED_Height-1)-j]&0x4);

		//下半部16行
		LED_R2(LED_Buffer[i][(LED_Height/2-1)-j]&0x1);
		LED_G2(LED_Buffer[i][(LED_Height/2-1)-j]&0x2);
		LED_B2(LED_Buffer[i][(LED_Height/2-1)-j]&0x4);

		LED_CLK(1);
		LED_CLK(0); //寫入數(shù)據(jù)
	}
	LED_LAT(1);
	LED_LAT(0);	//鎖存
	LED_OE(0);	//顯示
	Delay_us(100); //顯示停留時間,可以試著調(diào)這個值
	LED_OE(1);
	j++;
	j%=16;
}

//將圖片的取模數(shù)組Disp64x32存入顯存數(shù)組LED_Buffer
void Display_ShowPicture(uint8_t X,uint8_t Y,uint8_t W,uint8_t H,uint8_t Color)
{
	uint8_t i,j;
	for(i=0;i<H;i++)//32
	{
		for(j=0;j<W;j++)//64
		{
			/* LED_Buffer[x][y]中xy指的是屏幕的橫縱坐標 */
			LED_Buffer[W-1-j][H-1-i]=(Disp64x32[i][7-(j)/8]&(0x01<<(j)%8))?Color:0x00;
		}
	}
}

int main(void)
{
	u8 flag;
	LED_Init();

	Display_ShowPicture(0,0,64,32,0x06/*綠+藍*/);

	while (1)
	{
		LED_Display();
	}
} 

其中下面這部分是用來選擇行的。

LED_D(j&0x8);
LED_C(j&0x4);
LED_B(j&0x2);
LED_A(j&0x1);
...
   ...
j++;
j%=16; 

LED_Buffer[LED_Width][LED_Height]這個數(shù)組就是我們要顯示的圖片對應(yīng)顯存數(shù)組,它與點陣屏上的像素點是一一對應(yīng)的(數(shù)據(jù)倒著存放是為了運算方便)。

我們用單片機控制點陣屏使用的是行掃描的方式,我們對這種方式并不陌生,學(xué)51單片機時控制LED數(shù)碼管顯示也是用的這種方式。先選擇某一行,然后將這一行的顯示數(shù)據(jù)分別發(fā)送給恒流芯片(串行的),接著鎖存、顯示(都是低電平有效)。

LED_LAT(1);
LED_LAT(0);	//鎖存
LED_OE(0);	//顯示
Delay_us(100); //顯示停留時間,可以試著調(diào)這個值
LED_OE(1); 

通過調(diào)整OE信號低電平持續(xù)時間可以改變點陣屏的亮度。

經(jīng)過以上程序,就可以將取模后的圖片顯示在LED點陣屏上。

總結(jié):

本文是入門教程,但仍然基于在看同學(xué)會stm32單片機配置和使用,會C語言。

完整程序下載:STM32F103驅(qū)動LED點陣屏P5全彩色HUB75接口_hub75接口定義-單片機文檔類資源-CSDN下載

也可以群文件中免費下載(676606232)

程序適用的LED點陣屏必須是普通恒流驅(qū)動芯片,38類譯碼器,1/16掃描,HUB75接口的屏幕,請同學(xué)們向商家問清楚。文章來源地址http://www.zghlxwxcb.cn/news/detail-803840.html

到了這里,關(guān)于[入門教程]詳細講解STM32控制LED點陣屏(HUB75接口)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包