



下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、關(guān)于WS2812B我就不多說了,規(guī)格說明書講的很具體。目前網(wǎng)上共享的2812驅(qū)動比較少,而且說明不詳,使用起來不是很便利,本著共同進(jìn)步的精神在這里和大家共享一下我的調(diào)試閱歷。MCU:STC12C5A08S2晶振:24M/閱歷:2812時序要求還是比較嚴(yán),對傳統(tǒng)51來說實現(xiàn)真的有難度,之前網(wǎng)上共享的STC89C52的驅(qū)動,即使真的點亮了燈帶,估量也達(dá)不到我們的把握要求。由于1T的51加上24M的晶振,我在調(diào)試時也有點牽強(qiáng),一次IO的翻轉(zhuǎn)就要300ns。下面是燈帶的驅(qū)動程序,可直接用:sbit Din = P32;uint8 bdata LED_DAT;/可位操作的數(shù)據(jù)發(fā)送暫存變量聲明sbit b
2、it0 = LED_DAT0; /被發(fā)送的數(shù)據(jù)各位定義sbit bit1 = LED_DAT1;sbit bit2 = LED_DAT2;sbit bit3 = LED_DAT3;sbit bit4 = LED_DAT4;sbit bit5 = LED_DAT5;sbit bit6 = LED_DAT6;sbit bit7 = LED_DAT7;/復(fù)位碼:低電平>50usvoid Reset()uint8 i;Din = 0;for(i = 0; i < 50; i+) ; /=/發(fā)送RGB數(shù)據(jù),一個nop為40ns, 刷新一次32*24*1.25us=960us/=/1碼 高電平
3、850ns,低電平400ns實測863,424#define CODE1Din = 1;_nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_(); Din = 0;_nop_();_nop_();/0碼 高電平400ns,低電平850ns實測343,704#define CODE0Din = 1;_nop_();_nop_();_nop_();_nop_(); Din = 0;
4、_nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_(); void SendData(uint8 *dat) /數(shù)據(jù)格式G7-G0-R7-R0-B7-B0 LED_DAT = *dat+; if(bit7=1) CODE1 else CODE0 if(bit6=1) CODE1 else CODE0 if(bit5=1) CODE1 else CODE0 if(bit4=1) CODE1 else CODE0 if(bit3=1) CODE1 else CODE0 if(bit2=1) CODE1 els
5、e CODE0 if(bit1=1) CODE1 else CODE0 if(bit0=1) CODE1 else CODE0 LED_DAT = *dat+; if(bit7=1) CODE1 else CODE0 if(bit6=1) CODE1 else CODE0 if(bit5=1) CODE1 else CODE0 if(bit4=1) CODE1 else CODE0 if(bit3=1) CODE1 else CODE0 if(bit2=1) CODE1 else CODE0 if(bit1=1) CODE1 else CODE0 if(bit0=1) CODE1 else C
6、ODE0 LED_DAT = *dat; if(bit7=1) CODE1 else CODE0 if(bit6=1) CODE1 else CODE0 if(bit5=1) CODE1 else CODE0 if(bit4=1) CODE1 else CODE0 if(bit3=1) CODE1 else CODE0 if(bit2=1) CODE1 else CODE0 if(bit1=1) CODE1 else CODE0 if(bit0=1) CODE1 else CODE0/閱歷:SendData的傳入?yún)?shù),我用的是數(shù)組uint8 GRBData323; 分別對應(yīng)32顆燈的GRB數(shù)據(jù)
7、。這里有兩點需要留意:1 、別用結(jié)構(gòu)體。雖然結(jié)構(gòu)體看起來用起來很直觀便利,但是結(jié)構(gòu)體的尋址方式時間比數(shù)組長很多,哪怕你傳入后用指針也不行。typedef struct uint8 G;uint8 R;uint8 B;COLOUR;2 、編譯方式Memory Model 只能選擇Small。此時局部變量是放在0x00-0x7f的128個RAM里面執(zhí)行的,速度也是最快的;選其他模式,則會放到xdata 里,這樣讀取速度慢了,我們的時序也會變。下面是STM32的驅(qū)動(聲明:這是網(wǎng)友給我的,用不起別找我)#include "led_register.h"#include "
8、;stm32f0xx.h"#define LED_ON (GPIOA->BSRR = 0x00000040)#define LED_OFF (GPIOA->BSRR = 0x00400000)void LED_GPIO_Init() RCC->AHBENR |= 0x00020000 ; /enable the clock of PORTA GPIOA->MODER |= 0x00001000 ; / PA6 out GPIOA->OTYPER &= 0x00000000 ; /pull out GPIOA->OSPEEDR |= 0x00
9、003000 ; / high speed 50MHZ GPIOA->PUPDR |= 0x00002000 ; / PUPD = DOWN GPIOA->BSRR |= 0x00400000 ; / reset PA5 void Send_8bits(uint8_t dat) uint8_t a; for(a=0;a<8;a+) LED_ON; if(dat & 0x80) asm("nop");asm("nop");asm("nop");asm("nop");asm("nop
10、");asm("nop"); asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop"); asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop"); asm("nop&qu
11、ot;);asm("nop");asm("nop");asm("nop");asm("nop");asm("nop"); asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop"); asm("nop");asm("nop");asm("nop")
12、;asm("nop");asm("nop");asm("nop"); dat=dat<<1; LED_OFF; asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop"); else asm("nop");asm("nop");asm("nop");asm("nop
13、");asm("nop");asm("nop"); dat=dat<<1; LED_OFF; asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop"); asm("nop");asm("nop");asm("nop");asm("nop");asm("n
14、op");asm("nop"); asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop"); asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop"); asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop"); asm("nop");asm("nop");asm("nop");asm(&qu
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年商業(yè)寫字樓智能化系統(tǒng)初步設(shè)計評估與智能化系統(tǒng)應(yīng)用效果優(yōu)化報告
- 藥品部門銷售管理制度
- 藥學(xué)人員培訓(xùn)管理制度
- 藥店市場訊息管理制度
- 藥店耗材采購管理制度
- 營業(yè)場所安全管理制度
- 設(shè)備使用成本管理制度
- 設(shè)備備件提報管理制度
- 設(shè)備報修維修管理制度
- 設(shè)備檢修期間管理制度
- 內(nèi)力組合計算表(自動版)
- 人民幣發(fā)展史
- 學(xué)校食品安全檔案管理制度
- 環(huán)境法學(xué)案例分析題
- 《心理健康與職業(yè)生涯》期末考試題庫含答案
- FANUC機(jī)器人培訓(xùn)教程(完成版)(PPT134頁)
- 浙教版科學(xué)(全6冊)知識點匯總
- 農(nóng)產(chǎn)品農(nóng)業(yè)公司財務(wù)管理制度
- 修理廠汛期安全應(yīng)急預(yù)案
- 流動資金貸款需求量測算參考計算表(XLS12)
- 汽車油漆涂層QCT484—1999
評論
0/150
提交評論