標(biāo)題: P8913三路恒流256級(jí)RGB彩燈驅(qū)動(dòng)使用資料(STM32F1為例) [打印本頁]
作者: csy-2015-06 時(shí)間: 2018-10-13 09:49
標(biāo)題: P8913三路恒流256級(jí)RGB彩燈驅(qū)動(dòng)使用資料(STM32F1為例)
P9813驅(qū)動(dòng)RGB燈珠
1 P9813簡介及特點(diǎn):2 P8913常見接線圖因?yàn)樗械念伾际怯扇M合而成,這個(gè)RGB彩燈就是讓我們給它紅綠藍(lán)三種不同比例就可以顯示出各種顏色。R:red (紅色) G:green(綠色)B:blude(藍(lán)色)。驅(qū)動(dòng)芯片負(fù)責(zé)把三種顏色的顏色系數(shù)給到燈珠,燈珠就會(huì)顯示彩色。三原色國際色卡自行百度。
3 驅(qū)動(dòng)時(shí)序圖及工作參數(shù)- 前32 位“0”為起始幀,在Cin 上升沿時(shí)打入,并且時(shí)序DIN要先于CIN;
② 標(biāo)志位為兩個(gè)“1”;
③ 校驗(yàn)數(shù)據(jù)“B7’”與“B6’”為藍(lán)色灰度數(shù)據(jù)的“B7”與“B6”的反碼;
④ 灰度級(jí)數(shù)據(jù)要高位先入,并且是藍(lán)綠紅順序。
由此可得,MCU需要發(fā)送的數(shù)據(jù)
32位0起始信號(hào): 0000 0000 0000 0000 0000 0000 0000 0000
第一點(diǎn)32位灰度數(shù)據(jù): 11B7’B6’ G7’G6’R7’R6’ xxxx xxxx xxxx xxxx xxxx xxxx
第二點(diǎn)32位灰度數(shù)據(jù): 11B7’B6’ G7’G6’R7’R6’ xxxx xxxx xxxx xxxx xxxx xxxx
(紅色碼 綠色碼 藍(lán)色碼)
可見需要延時(shí)操作,單片機(jī)執(zhí)行匯編代碼需要時(shí)間,所以延時(shí)不用太久1us就行。
此外,單片機(jī)要發(fā)送的數(shù)據(jù)為
4 驅(qū)動(dòng)思路4.1 發(fā)送一位數(shù)據(jù):DIN=0/1 //數(shù)據(jù)線準(zhǔn)備數(shù)據(jù)
CIN=0
延時(shí)
CIN=1
延時(shí) //時(shí)鐘線拉高后變低,數(shù)據(jù)傳輸?shù)叫酒瑑?nèi)
4.2 發(fā)送32位數(shù)據(jù)發(fā)送32位數(shù)據(jù)
For(i=0;i<32;i++)
{
發(fā)送一位數(shù)據(jù):
}
5 實(shí)戰(zhàn)代碼5.1 整合3個(gè)三原色數(shù)據(jù)到一個(gè)變量。u32 Color_Data(unsigned int r,unsigned int g,unsigned int b) //寫入三個(gè)八位的值,返回一個(gè)32位的數(shù)值
{
u32 temp=0;
temp |=0x03<<30; //0xc0--> 1100 0000 1010 1010
temp |= ((~b)&0xc0)<<22; //取藍(lán)色最高兩位取反,得到B7’ B6’
temp |= ((~g)&0xc0) <<20; //取綠色最高兩位取反,得到G7’G6’
temp |= ((~r)&0xc0) <<18; //取綠色最高兩位取反,得到R7’R6’
temp |= b<<16;
temp |= g<<8;
temp |= r<<0;
return temp;
}
5.2 MCU發(fā)送數(shù)據(jù)到芯片void RGB_Send_Data(u32 data)
{
unsigned int i;
for(i=0;i<32;i++)
{
//取data的最高位,如果是1就寫1(注意按位操作是寫16進(jìn)制)
if(data&0x80000000)//準(zhǔn)備一位數(shù)據(jù)
{
RGB_DATA_H;
}
else
{
RGB_DATA_L; //否則寫0
}
data<<=1;//每取出一個(gè)數(shù)據(jù),讓次高位變成最高位,遍歷整個(gè)32位的data值
RGB_CLK_L;
Delay_us(1);
RGB_CLK_H;
Delay_us(1);
/*以上四步操作令CLK產(chǎn)生上升沿*/
}
}
5.3 最終的控制函數(shù)void RGB_Color_Control(unsigned int r,unsigned int g,unsigned int b)
{
u32 color_data;
color_data= Color_Data(r,g,b) ;
RGB_Send_Data(0);//先發(fā)送32位低電平起始信號(hào)
RGB_Send_Data(color_data); //發(fā)送第一個(gè)32位灰度數(shù)據(jù)
RGB_Send_Data(color_data); //發(fā)送第二個(gè)32位灰度數(shù)據(jù)
}
5.4 IO口初始化略(推挽輸出)
0.png (47.93 KB, 下載次數(shù): 70)
下載附件
2018-10-13 15:19 上傳
全部資料51hei下載地址:
P8913驅(qū)動(dòng)RGB彩燈(stm32F1為例).zip
(1.07 MB, 下載次數(shù): 72)
2018-10-13 09:48 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
作者: tianqi911 時(shí)間: 2019-1-10 17:02
正需要,參考學(xué)習(xí)。
歡迎光臨 (http://www.torrancerestoration.com/bbs/) |
Powered by Discuz! X3.1 |